从属性文件创建Ant本地属性

时间:2014-02-05 12:48:14

标签: java ant build build-process ant-contrib

我知道,因为Ant 1.8local property可以用于当前范围。

对于我的情况,我需要从属性文件加载属性,我需要这些属性是本地的。例如,我的属性文件:

param1=value1
param2=value2
param3=value3
.
.
paramN=valueN

我想在每个目标上加载此属性文件,并希望将这些属性保留在该目标的本地。

我如何实现它?

2 个答案:

答案 0 :(得分:1)

如果您不知道所有属性和/或不想为每个属性<local/>枚举所有属性,我看到的唯一解决方案是在目标中使用嵌套<antcall/>执行属性加载并将它们保存在本地ant上下文中(一旦完成ant调用,其中创建的所有属性都将丢失,您无法从ant调用调用者获取它们。)

答案 1 :(得分:0)

由于Local Task仅适用于单个属性,因此您可以将其扩展为适用于从属性文件加载的一堆属性。 Antelope projectAntelope Ant tasks中的一些现在是antcontrib的一部分,但计划的合并从未完成..)有一个类似的任务叫做unset,它只占用一个属性,但也是一个propertyfile - 检查它的灵感来源(源代码包含在发布zip中)。或者使用Antelope unset任务(它与其他Antelope类没有依赖关系)来创建一个范围:

<target name="foo">
<!-- loaded when target starts.. -->
<property file="foo.properties"/>
...
<!-- ..destroyed when target ends -->
<unset file="foo.properties/>
</target>