2010-04-27 38 views
4

这里有一个简单的Ant构建文件:属性设置为false,但指标仍执行

<?xml version="1.0" encoding="UTF-8"?> 
<project name="Project" default="build" basedir="."> 
    <property name="compressAssets" value="false"/> 

    <target name="build" depends="compress-assets"/> 
    <target name="compress-assets" if="compressAssets"> 
     <echo message="executed"/> 
    </target> 
</project> 

compressAssets设置为false,那为什么在compress-assets目标每次执行?请注意目标上的if属性。

回答

6

if不检查属性的值,它检查属性是否已设置。


documentation

<target name="build-module-A" if="module-A-present"/> 

[...]如果module-A-present属性设置(为任意值,例如)时,目标将被运行。

+0

好的,谢谢。一定错过了。 – Ree 2010-04-27 08:54:22

+1

因此,Ant对整个编程世界的其他部分使用“if”的不同含义。 – pacoverflow 2014-08-05 22:05:19

5

在蚂蚁1.8,if现在会检查该值是真(unless检查假的),所以你可以这样做:

<target name="blah" if="${do-blah}"> 
    . 
    . 
    . 
</target> 
相关问题