我有一个属性文件,由我的ant脚本本身在执行期间生成。我想从这个生成的属性文件中访问属性的值。
例如,
生成的属性文件:
first.prop=abcd
second.prop=pqrs
在脚本中,我试图像这样访问它,
我有一个属性名称(我想访问并且在生成的属性文件中)来自其他一些属性。该属性为name.prop
。
所以,
<echo message="${name.prop}"/>
<echo message="${${name.prop}}"/>
给出
first.prop
${${name.prop}}
分别作为输出。 对此有什么解决方法?
答案 0 :(得分:9)
这来自doc:
大括号嵌套
在默认配置中,Ant不会尝试平衡大括号 属性扩展,它只会消耗文本到第一个 创建属性名称时关闭大括号。即扩张时 像$ {a $ {b}}这样的东西将被翻译成两部分:
- 财产扩张a $ b - 可能没用。
- 第二个右括号
产生的文字文字}这意味着您无法轻松使用名称为的扩展属性 由属性给出,但旧版本有一些解决方法 蚂蚁使用Ant 1.8.0和props Antlib,您可以配置Ant 如果你需要这样的话,可以使用那里定义的NestedPropertyExpander 特征
所以它不容易获得。可以找到解决方法(使用<script />
或<macrodef />
here in the official ant faq。
答案 1 :(得分:0)
I tried this, to get similar values<br/>
prop.properties contains:
a=val1
b=val2
c=val3
batch.props=a,b,c
<for list="${batch.props}" param="prop">
<sequential>
<echo>@{prop} is ${batch.@{prop}}</echo>
</sequential>
</for>
Got Ans as below:
a is val1
b is val2
c is val3
Enjoy!