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

tos*_*ish 7 ant properties echo

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

例如,

生成的属性文件:

first.prop=abcd
second.prop=pqrs
Run Code Online (Sandbox Code Playgroud)

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

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

<echo message="${name.prop}"/>
<echo message="${${name.prop}}"/>
Run Code Online (Sandbox Code Playgroud)

first.prop
${${name.prop}}
Run Code Online (Sandbox Code Playgroud)

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

oer*_*ers 9

这是来自doc:

嵌套大括号

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

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

这意味着您不能轻易地使用名称由属性提供的扩展属性,但是对于旧版本的Ant,有一些解决方法.使用Ant 1.8.0和道具Antlib,您可以配置Ant以使用在那里定义的NestedPropertyExpander,如果您需要这样的功能.

所以它不容易获得.解决方法(使用<script /><macrodef />可以在官方的ant faq中找到).