Запустите муравей с Java
Есть ли руководство по запуску Ant из Java? Я получил некоторый код отсюда: Установка JAVA_HOME при запуске Ant из Java
Но не смогли заставить его работать. Я пытался найти пример или учебник о том, как на самом деле его использовать.
Вот что у меня так далеко:
Проект р = новый проект (); p.setUserProperty("ant.file", buildFile.getAbsolutePath()); p.fireBuildStarted(); Приколи это(); p.executeTarget("по умолчанию");
Но я думаю, что эта ошибка:
Исключение в потоке "main" Целевое значение "default" не существует в проекте "null". в org.apache.tools.ant.Project.tsort(Project.java:1912) в org.apache.tools.ant.Project.topoSort(Project.java:1820) в org.apache.tools.ant.Project.topoSort(Project.java:1783) в org.apache.tools.ant.Project.executeTarget(Project.java:1368) в com.arthrocare.vss2svn.VSS2SVN.newProcess(VSS2SVN.java:128) на com.arthrocare.vss2svn.VSS2SVN.main(VSS2SVN.java:52) Java Результат: 1
Я попытался указать проект с:
p.setUserProperty ("ant.project.name", "VSS Project");
Но не повезло.
Указанный файл ant является правильным, так как он отлично работает из командной строки.
ОБНОВИТЬ
После еще нескольких поисков я получил здесь: http://onjava.com/pub/a/onjava/2002/07/24/antauto.html?page=1
Это отличный учебник.
Вот код, который я получил немного раньше, чем увидел код в ответе ниже:
Проектный проект = новый проект (); ProjectHelper.configureProject(project, buildFile); DefaultLogger consoleLogger = new DefaultLogger(); consoleLogger.setErrorPrintStream(System.err); consoleLogger.setOutputPrintStream(System.out); consoleLogger.setMessageOutputLevel(Project.MSG_INFO); project.addBuildListener(consoleLogger); project.init(); project.executeTarget(project.getDefaultTarget());
Но по какой-то причине задача все равно не выполняется! Я использую задачу Visual Source Safe, которая должна прочитать значение среды во время выполнения, но не видит этого с таким подходом. Запуск файла build.xml вручную и с использованием следующего кода работает:
ProcessBuilder pb = new ProcessBuilder (); Карта env = pb.environment(); String path = env.get("ANT_HOME"); System.out.println(путь); pb.directory(новый файл (System.getProperty("user.home"))); pb.command(путь + System.getProperty("file.separator") + "bin" + System.getProperty("file.separator") + "ant.bat"); пытаться { Процесс p = pb.start(); } catch (IOException ex) { // }
1 ответ
Есть ли руководство по запуску Ant из Java?
Часть моего ответа на этот вопрос может помочь:
Смотрите эту статью и эту статью:
File buildFile = new File("build.xml"); Project p = new Project(); p.setUserProperty("ant.file", buildFile.getAbsolutePath()); p.init(); ProjectHelper helper = ProjectHelper.getProjectHelper(); p.addReference("ant.projectHelper", helper); helper.parse(p, buildFile); p.executeTarget(p.getDefaultTarget());