Ant If-Unless



Ant If-Unless

Ant
If
Unless都是 <target> 元素(任务)的属性。这些属性用于控制任务是否运行。
除了target之外,还可以与
<target>
<junit> 元素。
在早期版本和Ant 1.7.1 中,这些属性只是属性名称。如果定义了属性,则即使值是false也可以运行。
例如,即使传递false后也无法停止执行。
//build.xml
<project name="java-ant project" default="run">
<target name="compile">
    <available property="file.exists" file="some-file"/>
    <echo>File is compiled</echo>
</target>
<target name="run" depends="compile" if="file.exists">
    <echo>File is executed</echo>
</target>
</project>

输出:
无参数: 运行时不带命令行参数。只需在终端输入
ant ,但首先定位到项目位置,它将显示空输出。
带有参数: 现在传递参数,但
false
Ant -0Dfile.exists = false


Ant If-Unless_https://bianchenghao6.com_【Ant 教程】_第1张

现在传递参数,但
true

Ant -Dfile.exists = true


Ant If-Unless_https://bianchenghao6.com_【Ant 教程】_第2张

从Ant 1.8.0开始,我们可以使用允许仅在value为真正。在新版本中,它为我们提供了更大的灵活性,现在我们可以在命令行中覆盖。参见下面的示例。
//build.xml
<project name="java-ant project" default="run">
<target name="compile" unless="file.exists">
    <available property="file.exists" file="some-file"/>
</target>
<target name="run" depends="compile" if="${file.exists}">
    <echo>File is executed</echo>
</target>
</project>

输出:
无参数: 在不使用命令行参数的情况下运行它。只需在终端输入
ant ,但首先定位到项目的位置,它将显示空的输出。
带参数: 现在传递参数,但
false

Ant -Dfile.exists = false
无输出,因为这次如果没有执行。
带有参数: 现在传递参数,但
true 。现在它显示输出,因为评估了if。

Ant -Dfile.exists = true


Ant If-Unless_https://bianchenghao6.com_【Ant 教程】_第3张