Le support Ant intégré dans Eclipse permet aux plug-in d'exécuter de façon programmée des fichiers de compilation 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 compilation 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 compilation. 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 compilation échoue. Pour éviter cet incident, le chargement peut être géré par une classe à l'intérieur de la bibliothèque de plug-in. 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.