Как запустить задачу Ant из веб-приложения - PullRequest
0 голосов
/ 17 января 2019

Мне нужно запустить ant target из моего веб-приложения в контроллере rest. Я использую следующий код:

DefaultLogger consoleLogger = new DefaultLogger();
consoleLogger.setErrorPrintStream(System.err);
consoleLogger.setOutputPrintStream(System.out);
consoleLogger.setMessageOutputLevel(Project.MSG_INFO);

// Prepare Ant project
String buildFilePath = "build.xml";
Project project = new Project();
File buildFile = new File(buildFilePath);
project.setUserProperty("ant.file", buildFile.getAbsolutePath());
project.addBuildListener(consoleLogger);

try {
     project.fireBuildStarted();
     project.init();
     ProjectHelper projectHelper = ProjectHelper.getProjectHelper();
     project.addReference("ant.projectHelper", projectHelper);

     projectHelper.parse(project, buildFile);

     String targetToExecute = "<my target>";
     project.executeTarget(targetToExecute);
     project.fireBuildFinished(null);
} catch (BuildException buildException) {
    project.fireBuildFinished(buildException);
    throw new RuntimeException("Error", buildException);

}

Когда я выполняю этот метод из основного метода, это задача муравья выполняется правильно. Но, если я вызываю этот код с моего контроллера, он останавливается на

 projectHelper.parse(project, buildFile);

Это не вызывает каких-либо исключений или чего-то подобного, просто в затмении я получаю окно для прикрепления источника для cxf jar или некоторого не связанного jar. Я включил ant.jar, ant-launcher.jar и xercesImpl.jar в classpath.

Есть что-то, чего мне не хватает.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...