是否有可能在蚂蚁中指定属性值作为属性?

时间:2012-04-12 07:55:04

标签: ant properties echo

我有一个属性文件,由我的ant脚本本身在执行期间生成。我想从这个生成的属性文件中访问属性的值。

例如,

生成的属性文件:

first.prop=abcd
second.prop=pqrs

在脚本中,我试图像这样访问它,

我有一个属性名称(我想访问并且在生成的属性文件中)来自其他一些属性。该属性为name.prop。 所以,

<echo message="${name.prop}"/>
<echo message="${${name.prop}}"/>

给出

first.prop
${${name.prop}}

分别作为输出。 对此有什么解决方法?

2 个答案:

答案 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!