Aggiunta di attività e tipi

Quando il plugin aggiunge attività e tipi Ant, tali elementi hanno hanno accesso a tutte le classi all'interno del plugin in questione. Ad esempio, l'attività eclipse.refreshLocal aggiunta dal plugin org.eclipse.core.resources funge da wrapper per il metodo IResource.refreshLocal().

Le attività e i tipi aggiunti dai plugin non devono trovarsi in nessuna delle librerie di plugin, bensì risiedere in un file JAR separato. Ciò significa che le classi di plugin non hanno accesso alle attività e ai tipi forniti dal plugin.  (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.

Controlli di avanzamento

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'oggetto controllo 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 {
		...
	}
}
}

Regole importanti per l'aggiunta di attività e tipi

Di seguito è riportato un elenco di controllo per gli sviluppatori di plugin:

Perché utilizzare un file JAR separato per le attività e i tipi?

Esistono due requisiti per l'esecuzione di Ant in Eclipse che non si adattano molto bene al modello di plugin:

Durante il run-time i caricatori di classi di plugin non possono espandere i percorsi classi e i plugin 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 plugin. Quando i JAR supplementari vengono dichiarati da un plugin, è possibile aggiungere il plugin in questione anche al percorso classi Ant.