是否有关于如何从Java运行Ant的教程?我从这里得到了一些代码:从Java运行Ant时设置JAVA_HOME
但一直无法使其发挥作用.我一直试图找到一个如何实际使用它的示例或教程.
这是我到目前为止所拥有的:
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文件是正确的,因为它在命令行中运行良好.
UPDATE
经过一番搜索,我来到这里: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) {
//
}
Niv*_*vas 16
是否有关于如何从Java运行Ant的教程?
我对这个问题的部分回答可能有所帮助:
Run Code Online (Sandbox Code Playgroud)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());
| 归档时间: |
|
| 查看次数: |
31856 次 |
| 最近记录: |