Run ant from Java



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

但我没能让它工作。我一直在试图找到一个例子或教程如何实际使用它。

到目前为止我写的是:

<>之前项目p = new Project();p.setUserProperty("蚂蚁。文件",buildFile.getAbsolutePath ());p.fireBuildStarted ();p.init ();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

这是一个很好的教程。

这是我得到的代码,比下面答案中的代码要早一点:

<>之前Project Project = new Project();ProjectHelper。configureProject(项目,构建文件);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 ());之前

但由于某些原因,任务仍然失败!我正在使用一个可视化源安全任务,需要在运行时读取环境值,但它没有看到它与这种方法。手动运行build.xml文件并使用以下代码工作:

<>之前ProcessBuilder pb = new ProcessBuilder();Map env = pb.environment();字符串路径= env.get("ANT_HOME");System.out.println(路径);pb。目录(新文件(System.getProperty("user.home")));pb.command(path + System.getProperty("file.separator")+ "bin" + System.getProperty("file.separator") + "ant.bat");尝试{进程p = pb.start();} catch (IOException ex) {//}

有关于如何从Java运行Ant的教程吗?

我对这个问题的部分回答可能有所帮助:

参见本文还有这篇文章:

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

相关内容

  • 没有找到相关文章

最新更新