2010-04-27 41 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> 
相關問題