2012-04-12 173 views
7

我有一个属性文件,它是由我的ant脚本自己在执行过程中生成的。我想从这个生成的属性文件中访问属性的值。是否可以在ant中指定属性值作为属性?

对于例如,

生成的属性文件:

first.prop=abcd 
second.prop=pqrs 

,并在脚本中,我试图访问它这个样子,

我有一个属性名称(我想访问并位于生成的属性文件中)。该房产是name.prop。 所以,

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

给出

first.prop 
${${name.prop}} 
分别

作为输出。 什么可以解决这个问题?

回答

8

这是从doc

牙套

在默认配置下蚂蚁的​​嵌套不会尝试在 财产扩展到平衡支架,它只会消耗文本到第一 在创建属性名称时关闭大括号。即扩大 类似$ {时一个$ {B}}将被翻译成两个部分:

  • 财产扩张$ {B - 可能没什么用处。
  • 的文字文本}从第二大括号

导致这意味着你不能使用很容易地扩展他们的名字是由性能给出 性质,但也有一些变通办法较旧版本的蚂蚁 。使用Ant 1.8.0和props Antlib,您可以将Ant 配置为使用在此定义的NestedPropertyExpander,如果您需要这样一个 功能。

所以它不容易获得。解决方法(使用<script /><macrodef />可以找到here in the official ant faq

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 ${[email protected]{prop}}</echo> 
    </sequential> 
</for> 

Got Ans as below: 
a is val1 
b is val2 
c is val3 

Enjoy! 
相关问题