我知道,因为Ant 1.8
,local property可以用于当前范围。
对于我的情况,我需要从属性文件加载属性,我需要这些属性是本地的。例如,我的属性文件:
param1=value1
param2=value2
param3=value3
.
.
paramN=valueN
我想在每个目标上加载此属性文件,并希望将这些属性保留在该目标的本地。
我如何实现它?
答案 0 :(得分:1)
如果您不知道所有属性和/或不想为每个属性<local/>
枚举所有属性,我看到的唯一解决方案是在目标中使用嵌套<antcall/>
执行属性加载并将它们保存在本地ant上下文中(一旦完成ant调用,其中创建的所有属性都将丢失,您无法从ant调用调用者获取它们。)
答案 1 :(得分:0)
由于Local Task仅适用于单个属性,因此您可以将其扩展为适用于从属性文件加载的一堆属性。 Antelope project(Antelope 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>