Lorsque votre plug-ins fournit des tâches et des types Ant, ces derniers ont accès à toutes les classes dudit plug-ins. Par exemple, la tâche eclipse.refreshLocal fournie par le plug-ins org.eclipse.core.resources constitue un encapsuleur pour la méthode IResource.refreshLocal().
Les tâches et les types fournies par des plug-ins ne doivent pas être placés dans les bibliothèques de plug-ins. Ils doivent se trouvent dans un fichier JAR distinct. De cette façon, les classes du plug-in n'ont pas accès aux tâches et types fournis par ce dernier. (Consultez la section Pourquoi placer les tâches et les types dans un fichier JAR distinct ? pour en savoir plus.)
Le point d'extension org.eclipse.ant.core.antTasks offre un exemple de spécification d'une nouvelle tâche dans le fichier plugin.xml.
Le support Ant d'Eclipse permet d'accéder à un moniteur de progression transmis lors de l'appel d'AntRunner. Entre autres, il est souhaitable d'accéder à un moniteur de progression car une tâche de fond peut vérifier si l'utilisateur en a demandé l'annulation. L'objet du moniteur de progression s'obtient à partir des références du projet Ant. Un moniteur est uniquement disponible si la méthode AntRunner.run(IProgressMonitor) a été appelée avec un moniteur de progression valide. Le fragment de code suivant montre comment procéder pour obtenir un moniteur de progression à partir du projet de la tâche :
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 { ... } } }
Ci-après les conditions à respecter par les développeurs de plug-ins :
Deux conditions sont à remplir pour exécuter Ant dans Eclipse s'il ne correspond pas exactement au modèle de plug-in :
Au moment de l'exécution, les chemins d'accès des chargeurs de classes du plug-in ne peuvent pas être développés et les plug-ins ne peuvent pas changer leurs dépendances. L'existence de fichiers JAR distincts pour les tâches et les types isole du mécanisme de chargement de classes. Si ces JAR sont déclarés par un plug-in, vous pouvez également ajouter le plug-in de contribution au chemin d'accès aux classes Ant.