代码改变世界

Apache Ant: If 和 Unless

2020-06-08 23:48  jetwill  阅读(690)  评论(0编辑  收藏  举报

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:\CODE\Ant>ant -f if_and_unless.xml
Buildfile: G:\CODE\Ant\if_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

参考: https://ant.apache.org/manual/ifunless.html