You can从 Java 代码调用 ant 脚本。
See 本文 http://ant.apache.org/manual/running.html(向下滚动到“通过 Java 运行 Ant”部分)并本文 http://www.ibm.com/developerworks/websphere/library/techarticles/0502_gawor/0502_gawor.html#sec2b:
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());
Update
我尝试使用以下 ant 文件,它没有“告诉”任何内容(没有控制台输出),但它worked: 文件确实被移动了
<project name="testproject" default="test" basedir=".">
<target name="test">
<move file="test.txt" tofile="test2.txt" />
</target>
</project>
当我再次尝试时(当没有test.txt
移动(它已经移动)),我得到了一个java.io.FileNotFoundException
.
我认为当您从 Java 运行某些东西时,这就是您所期望的。
如果您想要 ant 任务的控制台输出,您可能需要添加 Logger 作为构建侦听器。
来自@Perception的下面的回答。
DefaultLogger consoleLogger = new DefaultLogger();
consoleLogger.setErrorPrintStream(System.err);
consoleLogger.setOutputPrintStream(System.out);
consoleLogger.setMessageOutputLevel(Project.MSG_INFO);
p.addBuildListener(consoleLogger);