gpt4 book ai didi

java - 从 Java 运行 ant

转载 作者:搜寻专家 更新时间:2023-10-30 19:58:35 26 4
gpt4 key购买 nike

是否有关于如何从 Java 运行 Ant 的教程?我从这里得到了一些代码:Setting JAVA_HOME when running Ant from Java

但一直无法让它发挥作用。我一直在努力寻找有关如何实际使用它的示例或教程。

这是我目前所拥有的:

        Project p = new Project();        p.setUserProperty("ant.file", buildFile.getAbsolutePath());        p.fireBuildStarted();        p.init();        p.executeTarget("default");

但我猜这个错误:

Exception in thread "main" Target "default" does not exist in the project "null".     at org.apache.tools.ant.Project.tsort(Project.java:1912)    at org.apache.tools.ant.Project.topoSort(Project.java:1820)    at org.apache.tools.ant.Project.topoSort(Project.java:1783)    at org.apache.tools.ant.Project.executeTarget(Project.java:1368)    at com.arthrocare.vss2svn.VSS2SVN.newProcess(VSS2SVN.java:128)    at com.arthrocare.vss2svn.VSS2SVN.main(VSS2SVN.java:52)Java Result: 1

我尝试指定项目:

p.setUserProperty("ant.project.name", "VSS Project");

但没有运气。

指定的 ant 文件是正确的,因为它可以从命令行完美运行。

更新

经过更多搜索,我找到了这里:http://onjava.com/pub/a/onjava/2002/07/24/antauto.html?page=1

这是一个很棒的教程。

这是我在看到下面答案中的代码之前得到的代码:

        Project project = new Project();        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();        Map env = pb.environment();        String path = env.get("ANT_HOME");        System.out.println(path);        pb.directory(new File(System.getProperty("user.home")));        pb.command(path + System.getProperty("file.separator")                + "bin" + System.getProperty("file.separator") + "ant.bat");        try {            Process p = pb.start();        } catch (IOException ex) {            //        }

最佳答案

Is there a tutorial on how to run Ant from Java?

我对 this question 的部分回答可能有帮助:

See this article and this article:

   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());

关于java - 从 Java 运行 ant,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6733684/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com