Programové spuštění souborů sestavení Ant

Podpora Ant vestavěná do platformy Eclipse umožňuje modulům plug-in programově spouštět soubory sestavení Ant. Tuto funkci je možné nastavit prostřednictvím třídy AntRunner, která je součástí modulu plug-in org.eclipse.ant.core.

Následující úsek kódu představuje příklad použití třídy AntRunner v kódu jiného modulu 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);
}

Je-li použit monitor průběhu, je zpřístupněn spuštěným úlohám. Další podrobnosti naleznete v tématu Monitory průběhu.

Jestliže se sestavení nenacházejí v samostatných VM, může současně existovat pouze jedno sestavení Ant. Viz AntRunner.isBuildRunning();

Zvláštní informace týkající se nativních knihoven pro případy, kdy sestavení v rámci stejného prostředí JRE existuje jako pracovní prostor

Při každém spuštění souboru sestavení Ant v prostředí Eclipse je vytvořen nový zaváděč tříd. Vzhledem k tomu, že knihovnu je možné v prostředí Java zavést pouze jedním zaváděčem tříd, může při vícenásobném spuštění souboru sestavení dojít k problémům s použitím nativních knihoven. Pokud není předchozí zaváděč tříd tvořen bezvýznamnými daty shromážděnými v době, kdy se nový zaváděč tříd pokouší zavést nativní knihovnu, zobrazí se výjimka označující problém a sestavení se nezdaří. Jedním ze způsobů, jak se tomuto problému vyhnout, je přenést zpracování zavedení knihovny na třídu uvnitř knihovny modulu plug-in. Úloha může tuto třídu využít pro přístup k nativním metodám. Tímto způsobem je knihovna zavedena zaváděčem tříd modulu plug-in a nedojde ke vzniku konfliktu se zaváděním knihovny.