Ant-Erstellungsdateien programmgestützt ausführen

Die in Eclipse integrierte Ant-Unterstützung ermöglicht die programmgestützte Ausführung von Ant-Erstellungsdateien durch Plug-ins. Dies erfolgt über die Klasse AntRunner, die im Plug-in org.eclipse.ant.core enthalten ist.

Der folgende Codeausschnitt gibt ein Beispiel für die Verwendung von 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);
}
}

Falls eine Fortschrittsüberwachung verwendet wird, wird sie für die ausgeführten Tasks verfügbar gemacht. Weitere Details finden Sie unter Fortschrittsüberwachungen. Bitte beachten Sie, dass jeweils nur eine Ant-Erstellung zur Zeit ausgeführt werden kann. Weitere Informationen finden Sie unter AntRunner.isBuildRunning().

Sonderfall bei nativen Bibliotheken

Bei jeder Ausführung eines Ant-Scripts in Eclipse wird ein neues Klassenladeprogramm erstellt. Da eine Bibliothek in Java nur durch ein einziges Klassenladeprogramm geladen werden kann, kann es bei Tasks, die native Bibliotheken verwenden, zu Problemen kommen, wenn mehrere Scripts ausgeführt werden. Falls das vorherige Klassenladeprogramm zu dem Zeitpunkt, an dem das neue Klassenladeprogramm versucht die native Bibliothek zu laden, keine Garbage-Collection erstellt hat, wird eine Ausnahmebedingung ausgegeben, die das Problem anzeigt, und die Scriptausführung schlägt fehl. Eine Möglichkeit für die Vermeidung dieses Problems ist die Verwaltung der geladenen Bibliothek durch eine Klasse innerhalb einer Plug-Bibliothek. Die Task kann diese Klasse für den Zugriff auf native Methoden benutzen. Auf diese Weise wird die Bibliothek durch das Plug-in-Klassenladeprogramm geladen und verursacht keinen Konflikt mit der Ladebibliothek.

 

Copyright IBM Corporation und Andere 2000, 2003.