Tehtävien ja tyyppien lisäys

Lisäosan lisäämillä Ant-tehtävillä ja -tyypeillä on pääsy kaikkiin niitä lisäävän lisäosan luokkiin. Esimerkiksi eclipse.refreshLocal -tehtävä, jonka on lisännyt org.eclipse.core.resources -lisäosa, on metodin IResource.refreshLocal() liittymäobjekti.

Lisäosien lisäämiä tehtäviä ja tyyppejäei saa laittaa lisäosakirjastoihin. Niiden pitää olla erillisessä jar-tiedostossa. Tämä tarkoittaa sitä, että lisäosaluokilla ei ole pääsyä lisäosan tehtäviin ja tyyppeihin.  (Katso Miksi tehtäville ja lajeille tarvitaan erillinen JAR-tiedosto? )

Laajennuspiste org.eclipse.ant.core.antTasks on esimerkki siitä, kuinka uusi tehtävä määritetään plugin.xml -tiedostossa.

Tilannevalvontaohjelma

Eclipse-ympäristön Ant-tuki mahdollistaa pääsyn IProgressMonitor-rajapintaan, jos sellainen ohitetaan AntRunner-luokkaa kutsuttaessa. Yksi tilannevalvontaohjelman eduista on, että pitkäkestoiset tehtävät voivat tarkistaa, onko käyttäjä yrittänyt peruuttaa niitä. Tilannevalvontaobjekti on poimittu Ant-projektin viittauksista.  Huomaa, että valvontaohjelma on käytettävissä vain, jos AntRunner.run(IProgressMonitor) -metodi kutsutaan kelvollisella tilannevalvontaohjelmalla. Seuraavasta koodin katkelmasta näkyy, kuinka tilannevalvontaohjelman voi noutaa tehtävän projektista:

import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
import org.eclipse.ant.core.AntCorePlugin;
import org.eclipse.core.runtime.IProgressMonitor;

public class CoolTask extends Task {

public void execute() throws BuildException {
	IProgressMonitor monitor = 
		(IProgressMonitor) getProject().getReferences().get(AntCorePlugin.ECLIPSE_PROGRESS_MONITOR);
	if (monitor == null) {
		...
   } else {
		...
	}
}
}

Tärkeitä huomioita koskien uusien tehtävien ja tyyppien lisäystä

Alla on muistilista lisäosien sovelluskehittäjille:

Tehtäville ja tyypeille erillinen JAR-tiedosto

Ant-työkalun ajamiselle Eclipse-ympäristössä on kaksi sääntöä, jotka eivät sovi kovin hyvin lisäosamalliin:

Ajona aikana lisäosan luokanlataustoimintojen luokkapolkuja ei voi laajentaa eivätkä lisäosat voi muuttaa riippuvuussuhteitaan. Erilliset JAR-tiedostot tehtäviä ja tyyppejä varten pitävät ne erillään lisäosan luokanlatausmekanismista. Lisäosien ilmoittamat ylimääräiset JAR-tiedostot mahdollistavat myös tehtäviä ja tyyppejä lisäävän lisäosan liittämisen Ant-luokkapolkuun.