这是我到目前为止的内容:
项目p = new Project(); p.setUserProperty(“ ant.file”,buildFile.getAbsolutePath()); p.fireBuildStarted(); 压住他(); p.executeTarget(“ default”);
但是我猜这个错误:
线程“主”中的异常目标“默认”在项目“空”中不存在。 在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项目”);
但是没有运气。
指定的ant文件是正确的,因为它可以从命令行正常运行。
更新
经过更多搜索后,我到达了这里:http : //onjava.com/pub/a/onjava/2002/07/24/antauto.html?page=1
这是一个很棒的教程。
这是我在下面的答案中看到代码之前得到的代码:
项目项目= new Project(); ProjectHelper.configureProject(project,buildFile); DefaultLogger consoleLogger =新的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 =新的ProcessBuilder(); 地图env = pb.environment(); 字符串路径= env.get(“ ANT_HOME”); System.out.println(path); pb.directory(new File(System.getProperty(“ user.home”)))); pb.command(路径+ 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());
看到这篇文章 和这篇文章:
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());