本文介绍了蚂蚁:我如何从设置在命令行上传递的一个逗号分隔的列表中的属性?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用蚂蚁1.8.1。如果我在一个参数传递的命令行...
I'm using Ant 1.8.1. If I passed in an argument on the command line ...
-DenableProperties=abc,def,ghi,jkl
我如何设置单个属性(真/假)在我的Ant脚本?
How do I set individual properties (to true/false) in my Ant script?
<property name="abc" value="???" />
<property name="def" value="???" />
注意,在上面的例子中,我想蚂蚁有机会获得一个属性$ {} ABC,即设置为true,而如果它试图访问属性$ {} MNO的属性将是假的,或者至少不是真正的一些其他的价值。
Note that in the above example, I'd want Ant to have access to a property "${abc}" that is set to true, whereas if it tried to access the property "${mno}" that property would be false, or at least some value other than true.
谢谢, - 戴夫
推荐答案
不能想办法在核心Ant来做到这一点。你可以用做到这一点。
Can't think of a way to do this in core Ant. You could do it with the For task of ant-contrib.
<project default="test">
<taskdef resource="net/sf/antcontrib/antlib.xml">
<classpath>
<pathelement location="C:/lib/ant-contrib/ant-contrib-1.0b3.jar"/>
</classpath>
</taskdef>
<target name="test">
<for list="${enableProperties}" param="prop">
<sequential>
<property name="@{prop}" value="true"/>
</sequential>
</for>
<for list="${enableProperties}" param="prop">
<sequential>
<echo message="@{prop}=${@{prop}}"/>
</sequential>
</for>
</target>
</project>
输出:
$ ant -DenableProperties=abc,def,ghi,jkl
Buildfile: build.xml
test:
[echo] abc=true
[echo] def=true
[echo] ghi=true
[echo] jkl=true
BUILD SUCCESSFUL
Total time: 0 seconds
这篇关于蚂蚁:我如何从设置在命令行上传递的一个逗号分隔的列表中的属性?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!