【发布时间】:2014-04-26 01:49:57
【问题描述】:
我正在使用 Java 代码通过可执行 jar 执行 ANT 任务。我想将 build.xml 包含在可执行 JAR 中,但不知道如何在我的代码中引用它。任何帮助表示赞赏。
public static void main(String[] args) {
BuildLogger logger = new DefaultLogger();
logger.setMessageOutputLevel(Project.MSG_INFO);
logger.setOutputPrintStream(System.out);
logger.setErrorPrintStream(System.out);
logger.setEmacsMode(true);
ProjectHelper ph = ProjectHelper.getProjectHelper();
Project p = new Project();
p.addBuildListener(logger);
p.init();
p.addReference("ant.projectHelper", ph);
//File f = new File(this.getClass().getResource("/report.xml").toURI()); I can't do toURI on this, it throws an exception
ph.parse(p, this.getClass().getResource("/report.xml")); //This throws a NullPointerException within ANT
p.executeTarget("dumpandreport");
}
如果我创建一个引用外部 build.xml 文件的 java.io.File 对象并在 ph.parse 中指定该对象,则此方法有效...如果我尝试引用 JAR 中打包的文件,则此方法无效.我已经验证(通过 7-ZIP)文件 report.xml 实际上位于 JAR 的根目录中。
【问题讨论】: