【发布时间】:2014-06-24 06:55:17
【问题描述】:
我需要使用存储在 jar 文件中的 build.xml 文件运行 ANT 构建。这个 jar 文件在类路径中可用。是否可以做到这一点,而无需分解 jar 文件并将 build.xml 保存到本地目录?如果是这样,我该怎么做。
更新:
jar 文件是一个 ant 构建项目,其中类路径中的 build.xml 是通过使用 ANT 库的 java 程序运行的。前端是一个 Web 应用程序,它将这个构建项目 jar 作为依赖项加载。用户将单击构建应用程序按钮来运行 ANT 构建。因此,当用户单击 Build App 时,我需要在 jar 中运行 build.xml 文件。
读取 build.xml 文件的代码
URL preBuildFileUrl = getClass().getClassLoader().getResource("build.xml");
Project p = new Project();
p.setUserProperty("ant.file", preBuildFileUrl.toURI().getPath());
p.init();
ProjectHelper helper = ProjectHelper.getProjectHelper();
p.addReference("ant.projectHelper", helper);
helper.parse(p, new File(preBuildFileUrl.toURI().getPath()));
p.executeTarget(p.getDefaultTarget());
【问题讨论】:
-
你能提供更多关于你想要做什么的信息吗? ANT 通常在文件系统上工作,从中编译源代码并在其中创建工件,因此很可能您最终会使用文件系统。为什么不想提取 build.xml 文件?
-
更新了问题。
-
您可以读取文件,将其存储在临时位置,运行 ant,然后删除临时文件。
-
是的,我可以做到。但我只是在想我是否可以这样阅读。
-
这个 SO 链接可能有用。 stackoverflow.com/questions/6733684/run-ant-from-java。可以使用
getResource()找到 build.xml。