Le support Ant intégré dans Eclipse permet aux plug-ins d'exécuter de façon programmée des fichiers de génération Ant. Cette opération s'effectue via la classe AntRunner se trouvant dans le plug-in org.eclipse.aninct.core.
Le fragment de code ci-dessous présente un exemple d'utilisation d'AntRunner dans le code d'un autre plug-in :
import org.eclipse.ant.core.AntRunner; import org.eclipse.core.runtime.IProgressMonitor; ... public void runBuild() { IProgressMonitor monitor = ... AntRunner runner = new AntRunner(); runner.setBuildFileLocation("c:/buildfiles/build.xml"); runner.setArguments("-Dmessage=Building -verbose"); runner.run(monitor); }
Si vous employez un moniteur de progression, il est disponible pour les tâches en cours d'exécution. Consultez la section Moniteurs de progression pour en savoir plus.
Notez que vous ne pouvez effectuer qu'une seule construction Ant à la fois si ces constructions n'ont pas lieu sur des machines virtuelles distinctes. Voir la section AntRunner.isBuildRunning();
Chaque fois qu'un fichier de génération Ant est exécuté dans Eclipse, un nouveau chargeur de classe est créé. Dans la mesure où une bibliothèque ne peut être chargée que par un chargeur de classe dans Java, les tâches qui utilisent des bibliothèques natives peuvent rencontrer des problèmes en cas d'exécutions multiples des fichiers de génération. Si le chargeur de classe précédent n'a pas été collecté par erreur lorsque le chargeur de classe tente de charger la bibliothèque native, une exception est générée afin de signaler le problème et la génération échoue. Pour éviter cet incident, le chargement peut être géré par une classe à l'intérieur de la bibliothèque de plug-ins. La tâche peut utiliser cette classe pour accéder à des méthodes natives. La bibliothèque est ainsi chargée par le chargeur de classe du plug-in et ne crée pas de conflit.