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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否有可能在蚂蚁中指定属性值作为属性?相关的知识,希望对你有一定的参考价值。

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

例如,

生成的属性文件:

first.prop=abcd
second.prop=pqrs

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

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

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

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

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

答案

这是来自doc

嵌套大括号

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

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

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

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

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

以上是关于是否有可能在蚂蚁中指定属性值作为属性?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Flyway DB 配置文件中指定多行属性值?

有没有办法在 Spring XML 中指定默认属性值?

C#如何读取XML中指定的节点值?

如何在 ReactJS 中指定空属性类型?

C# 如何得到一XML文件中指定的节点属性值

我可以在属性中指定路径以将我的类中的属性映射到我的 JSON 中的子属性吗?