Přispívání úlohami a typy

Při přispívání úlohami a typy Ant modulem plug-in mají úlohy a typy přístup ke všem třídám uvnitř přispívajícího modulu plug-in. Např. úloha eclipse.refreshLocal přispěná modulem plug-in org.eclipse.core.resources slouží jako obal pro metodu IResource.refreshLocal().

Úlohy a typy přispěné moduly plug-in nesmí být umístěny v žádné knihovně modulu plug-in. Musí se nacházet v samostatném souboru JAR. To znamená, že třídy modulů plug-in nemají přístup k úlohám a typům poskytovaným modulem plug-in.  (Další informace viz Proč samostatný soubor JAR pro úlohy a typy? .)

Bod rozšíření org.eclipse.ant.core.antTasks poskytuje příklad způsobu zadání nové úlohy v souboru plugin.xml.

Monitor průběhu

Prostředí Eclipse Ant poskytuje přístup k funkci IProgressMonitor, jestliže je předána při vyvolání nástroje AntRunner. Jedna z výhod přístupu k monitoru průběhu je, že dlouhodobá úloha může kontrolovat, zda uživatel požaduje její zrušení. Objekt monitoru průběhu je získáván z odkazů projektu Ant.  Vezměte na vědomí, že monitor je zpřístupněn pouze, pokud byla metoda AntRunner.run(IProgressMonitor) zavolána pomocí platného monitoru průběhu. Následující úsek kódu zobrazuje, jak je možné získat monitor průběhu z projektu úlohy:

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 {
		...
	}
}
}

Důležitá pravidla přidávání úloh a typů

Následující informace by měly sloužit jako kontrolní seznam pro vývojáře modulů plug-in:

Proč samostatný soubor JAR pro úlohy a typy?

V podstatě existují dva požadavky pro spuštění prostředí Ant na platformě Eclipse, které modelu modulu plug-in příliš neodpovídají:

Během doby provádění nemohou mít zaváděče tříd rozbaleny cesty ke třídám a moduly plug-in nemohou měnit své závislosti. Současně samostatné soubory JAR slouží jako vhodná izolace od mechanizmu načítání tříd modulu plug-in. Tyto samostatné soubory JAR deklarované modulem plug-in také umožňují přidání přispívajícího modulu plug-in do cesty ke třídě Ant.