Quando il plug-in aggiunge attività e tipi Ant, tali elementi hanno hanno accesso a tutte le classi all'interno del plug-in in questione. Ad esempio, l'attività eclipse.refreshLocal aggiunta dal plug-in org.eclipse.core.resources funge da wrapper per il metodo IResource.refreshLocal().
Le attività e i tipi aggiunti dai plug-in non devono trovarsi in nessuna delle librerie di plug-in, bensì risiedere in un file JAR separato. Ciò significa che le classi di plug-in non hanno accesso alle attività e ai tipi forniti dal plug-in. (Vedere Perché utilizzare un file JAR separato per le attività e i tipi?? ).
Il punto di estensione org.eclipse.ant.core.antTasks fornisce un esempio su come specificare una nuova attività nel file plugin.xml.
Il supporto Ant Eclipse consente di accedere a un IProgressMonitor se ne viene trasmesso uno quando si richiama l'AntRunner. Uno dei vantaggi dell'accesso a un controllo di avanzamento consiste nel fatto che per un'attività di lunga durata è possibile verificare se l'utente ne ha richiesto la cancellazione. L'oggettocontrollo di avanzamento viene ottenuto dai riferimenti del progetto Ant. Tenere presente che un controllo è reso disponibile solo se il metodo AntRunner.run(IProgressMonitor) è stato chiamato con un controllo di avanzamento valido. Nel frammento di codice che segue viene illustrato come ottenere un controllo di avanzamento relativo al progetto dell'attività:
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 { ... } } }
Di seguito è riportato un elenco di controllo per gli sviluppatori di plug-in:
Esistono due requisiti per l'esecuzione di Ant in Eclipse che non si adattano molto bene al modello di plug-in:
Durante il run-time i caricatori di classi di plug-in non possono espandere i percorsi classi e i plug-in non possono modificare le proprie dipendenze. Al tempo stesso disporre di due JAR separati per le attività e i tipi rappresenta un buon isolamento dal meccanismo di caricamento delle classi dei plug-in. Quando i JAR supplementari vengono dichiarati da un plug-in, è possibile aggiungere il plug-in in questione anche al percorso classi Ant.