<switchvalue="mobile.qq"> <casevalue="mobile"> <echomessage="The value of property is mobile" /> </case> <casevalue="qq"> <echomessage="The value of property is qq" /> </case> <default> <echomessage="The value of property is np" /> </default> </switch>
变量(Variable)为 Ant 提供了一个值可变的特性,并且可以像 Java 中的参数赋值一样工作。变量的可变性虽然违背了标准的 Ant 特性规则,但有时候在构建过程中改变特性值的功能是有用的。变量可以单独设置,也可从一个标准的属性文件中加载。变量还有一个特点是,变量可以覆盖特性,但特性不能覆盖变量。因此,如果已经存在的特性,可以通过作用变量来对其进行值的修改。
变量有如下属性:
name: 变量名。
value: 变量的赋值。
unset: 当值为 true 时,将特性的值从构建环境中删除当作从未设置过。
file: 用于加载变量的标准的属性文件路径。
以上 4 个属性中,name 是必须设置的。但如果指定了标准的属性文件路径,则 name 可不设置
1 2 3 4 5 6 7 8 9 10 11
<propertyname="x"value="6"/> <echo>${x}</echo><!-- will print 6 --> <varname="x"unset="true"/> <propertyname="x"value="12"/> <echo>${x}</echo><!-- will print 12 --> 变量还支持在赋值的过程中直接进行字符串拼接 <varname="str"value="I "/> <varname="str"value="${str} am "/> <varname="str"value="${str} a "/> <varname="str"value="${str} string."/> <echo>${str}</echo><!-- print: I am a string. -->
我还是建议既然叫 var 就只是变量的功能, unset 属性尽量不用, 违背了 ant 的只赋值一次的初衷。