Aggiunta di attività e tipi

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 essere posizionate in nessuna delle librerie di plug-in. Devono risiedere in un file JAR separato. Questo significa che le classi di plug-in non hanno accesso alle attività e ai tipi forniti dal plug-in  (per ulteriori informazioni, vedere Perché si deve utilizzare un JAR separato per le attività e i tipi? ).

Il punto di estensione org.eclipse.ant.core.antTask fornisce un esempio di come specificare una nuova attività nel file plugin.xml.

Controlli di avanzamento

Il supporto Ant Eclipse fornisce accesso a un IProgressMonitor se ne viene passato uno quando si richiama 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 di controllo di avanzamento è ottenuto dalle preferenze del progetto Ant.  Si noti che un controllo è reso disponibile solo se il metodo AntRunner.run(IProgressMonitor) è stato richiamato con un controllo di avanzamento valido. Il seguente frammento di codice mostra come ottenere un controllo di avanzamento dal 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 plug-in:

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 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. Allo stesso tempo, disporre di JAR separati per le attività e i tipi è un buon modo per isolarsi dal meccanismo di caricamento di classi di plug-in e il fatto che il plug-in abbia dichiarato questi ulteriori JAR consente di inserire il plug-in di aggiunta nel percorso classi Ant.

 

Copyright
IBM Corp. e altri 2000,2002.