您的位置:首页 > 其它

如何通过${a${b}}的方式扩展属性名或属性值

2018-01-04 17:30 141 查看

一、概述

        默认情况下,Ant是不支持属性值的嵌套括号的解析的。但是可以通过其他一些变通方式来达到目的。

二、解决方法

        假设构建文件中已经存在名称为a值为A的属性,希望类似${a${B}}的方式进行属性的设置。设置后的属性名为AB,值为ab。有如下几种方法:

通过<script/>设置属性值
<script language="javascript">
propa = project.getProperty("a");
project.setNewProperty(propa+"B", "ab");
</script>

Ant1.6以上版本可以通过<macrodef/>设置属性值
<macrodef name="test">
<attribute name="name"/>
<attribute name="value"/>
<sequential>
<property name="${@{name}}B" value="@{value}"/>
</sequential>
</macrodef>

<test name="a" value="ab"/>

通过第三方插件Flaka读取属性值
<project xmlns:fl="antlib:it.haefelinger.flaka">
<fl:install-property-handler/>
<property name="foo" value="foo.value"/>
<property name="var" value="foo" />
<property name="buildtype" value="test"/>
<property name="appserv_test" value="//testserver"/>
<echo>
#{${var}} = foo.value
<!-- nested property -->
#{appserv_${buildtype}}
</echo>
</project>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ant属性嵌套扩展
相关文章推荐