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

问题描述 投票:7回答:2

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

例如,

生成的属性文件:

first.prop=abcd
second.prop=pqrs

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

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

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

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

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

ant properties echo
2个回答
9
投票

这是来自doc

嵌套大括号

在默认配置中,Ant不会尝试平衡属性扩展中的大括号,它只会在创建属性名称时使用文本到第一个右大括号。即在扩展诸如$ {a $ {b}}之类的东西时,它将被翻译成两部分:

  • 财产扩张a $ b - 可能没用。
  • 由第二个右括号产生的文字文本}

这意味着您不能轻易地使用名称由属性提供的扩展属性,但是对于旧版本的Ant,有一些解决方法。使用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 ${batch.@{prop}}</echo>
  </sequential>
</for>

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

Enjoy!
© www.soinside.com 2019 - 2024. All rights reserved.