Проверьте источник основного класса Муравья, org.apache.tools.ant.Main
.Вы можете попытаться вызвать его метод main
или start
напрямую или скопировать часть его логики в ваше приложение. После завершения этих методов ваше приложение должно продолжить выполнение.
РЕДАКТИРОВАТЬ:
Ответ Пола Кейджера правильныйЯ как-то упустил тот факт, что Ant Main
вызывает System.exit()
.
Еще одна вещь, связанная с методами main
/ start
/ startAnt
, заключается в том, что они ожидают аргументы как массив строк.Это может быть удобно, но не особенно безопасно и не ориентировано на объект.Чтобы вызвать Ant для данного файла сборки и цели, вы можете использовать что-то вроде этого:
public static void runAnt(String buildfile, String target) throws Exception {
File buildFile = new File(buildfile);
Exception error = null;
org.apache.tools.ant.Project project = new org.apache.tools.ant.Project();
try {
project.addBuildListener(new org.apache.tools.ant.listener.Log4jListener());
project.fireBuildStarted();
project.init();
project.setUserProperty(org.apache.tools.ant.MagicNames.ANT_FILE, buildFile.getAbsolutePath());
org.apache.tools.ant.ProjectHelper.configureProject(project, buildFile);
project.executeTarget(target);
} catch (Exception e) {
error = e;
throw e;
} finally {
project.fireBuildFinished(error);
}
}