If And Unless
从 Ant 1.9.1 起,可以在所有的任务和嵌套的元素上以特别的命名空间添加 if 和 unless 属性。
In order to use this feature you need to add the following namespace declarations
为了使用这个功能,你必须添加如下命名空间声明:
xmlns:if="ant:if"
xmlns:unless="ant:unless"
命名空间 if 和 unless 支持如下条件:
- true 如果属性的值计算为真,则结果为真
- blank 如果属性的值计算为 null 或 空,则结果为真
- set 如果指定的属性已设置,则结果为真
<project name="tryit"
xmlns:if="ant:if"
xmlns:unless="ant:unless">
<echo>${showextendedparams}</echo>
<exec executable="java">
<arg line="-X" if:true="${showextendedparams}"/>
<arg line="-version" unless:true="${showextendedparams}"/>
</exec>
<condition property="onmac">
<os family="mac"/>
</condition>
<echo>${onmac}</echo>
<echo if:set="onmac">running on MacOS</echo>
<echo unless:set="onmac">not running on MacOS</echo>
</project>
在我的 Windows 7 电脑上运行结果如下:
G:CODEAnt>ant -f if_and_unless.xml
Buildfile: G:CODEAntif_and_unless.xml
[echo] ${showextendedparams}
[exec] java version "1.8.0_212"
[exec] Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
[exec] Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)
[echo] ${onmac}
[echo] not running on MacOS
BUILD SUCCESSFUL
Total time: 0 seconds