El soporte de Ant incorporado en Eclipse permite que los conectores ejecuten programáticamente los archivos de construcción Ant. Esto se lleva a cabo por medio de la clase AntRunner incluida en el conector org.eclipse.ant.core.
El fragmento de código siguiente muestra un ejemplo de cómo utilizar la clase AntRunner:
import org.eclipse.ant.core.AntRunner; import org.eclipse.core.runtime.IProgressMonitor; public class Running { public static void main(String[] args) throws Exception { IProgressMonitor monitor = ... AntRunner runner = new AntRunner(); runner.setBuildFileLocation("c:/buildfiles/build.xml"); runner.setArguments("-Dmessage=Building -verbose"); runner.run(monitor); } }
Si se utiliza un supervisor de progreso, este estará disponible para las tareas en ejecución. En el tema Supervisores de progreso hallará más detalles. Tenga en cuenta que sólo puede producirse una construcción Ant en un momento determinado. Consulte AntRunner.isBuildRunning();
Cada vez que se ejecuta un script Ant en Eclipse, se crea un cargador de clases nuevo. En Java, cada biblioteca solo se puede cargar mediante un cargador de clases; por ello, las tareas que utilicen bibliotecas nativas podrían tener problemas durante las ejecuciones de múltiples scripts. Si el cargador de clases anterior no ha entrado en el turno de recogida de basura que tiene lugar en el momento en que el nuevo cargador de clases intenta cargar la biblioteca nativa, se lanza una excepción que indica el problema y falla la ejecución del script. Un modo de evitar este problema es hacer que la carga de bibliotecas esté manejada por una clase contenida en una biblioteca del conector. La tarea puede utilizar esa clase para acceder a los métodos nativos. De este modo, la biblioteca se carga por medio del cargador de clases del conector y no se produce el conflicto de carga de bibliotecas.