O suporte Ant incorporado no Eclipse permite aos plug-ins executarem programaticamente ficheiros de construção Ant. Tal realiza-se por meio da classe AntRunner incluída no plug-in org.eclipse.ant.core.
A porção de código seguinte mostra um exemplo da utilização de AntRunner de dentro de código de outro 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); }
Se for usado um supervisor de progresso, este será disponibilizado para as tarefas em execução. Consulte Supervisores de Avanço para mais detalhes.
Repare que só pode ocorrer uma construção Ant em dado momento se as construções não se derem em VMs separadas. Consulte AntRunner.isBuildRunning();
De cada vez que um ficheiro de construção Ant é executado em Eclipse, é criado novo carregador de classes. Dado que uma biblioteca só pode ser carregada por um carregador de classes em Java, as tarefas que recorrem a bibliotecas nativas poderiam deparar com problemas durante a execução de vários ficheiros de construção. Se não tiver sido recolhido o lixo ao anterior carregador de classes na altura em que o novo carregador de classes tenta carregar a biblioteca nativa, é devolvida uma excepção a indicar o problema e a construção falha. Uma forma de evitar este problema consiste em fazer com que o carregamento da biblioteca seja tratado por um, classe dentro de uma biblioteca de plug-ins. A tarefa pode recorrer a essa classe para aceder a métodos nativos. Desta forma, a biblioteca é carregada pelo carregador de classes de plug-in e não depara com conflitos no carregamento de bibliotecas.