Vla*_*hev 5 ant conditional target antcall
我有一组构建文件,其中一些调用其他文件 - 首先导入它们.行尾构建可能具有或不具有特定目标(例如"copyother").如果该目标是在行尾构建脚本中定义的,我想从我的主构建文件中调用它.我该怎么做?
部分调用脚本:
<!-- Import project-specific libraries and classpath -->
<property name="build.dir" value="${projectDir}/build"/>
<import file="${build.dir}/build_libs.xml"/>
...
<!-- "copyother" is a foreign target, imported in build_libs.xml per project -->
<target name="pre-package" depends=" clean,
init,
compile-src,
copy-src-resources,
copy-app-resources,
copyother,
compile-tests,
run-junit-tests"/>
Run Code Online (Sandbox Code Playgroud)
我不希望每个项目都定义"copyother"目标.我怎样才能进行有条件的蚂蚁通话?
我猜您没有将“其他”构建脚本导入到您的主 build.xml 中。(因为那行不通。Ant 将导入视为本地。)
同时,您使用的是 dependent 而不是 ant/ant 调用,所以也许您正在导入它们,但一次一个。
在原生 Ant 中你无法做你想做的事。正如您所指出的,测试文件很容易,但目标则不然。特别是如果其他项目尚未加载。您肯定必须编写自定义 Ant 任务才能完成您想要的任务。两个途径:
1)调用project.getTargets()并查看您的目标是否存在。这涉及重构您的脚本以使用 ant/antcall 而不是纯粹的依赖,但感觉不像黑客。编写自定义 Java 条件并不难,Ant 手册中有一个示例。
2) 将目标添加到当前项目(如果尚未存在)。新目标将是一个空操作。[不确定这个方法是否有效]
| 归档时间: |
|
| 查看次数: |
4948 次 |
| 最近记录: |