代码之家  ›  专栏  ›  技术社区  ›  Ree

属性设置为false,但目标仍在执行

ant
  •  5
  • Ree  · 技术社区  · 15 年前

    下面是一个简单的ant构建文件:

    <?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 目标上的属性。

    2 回复  |  直到 14 年前
        1
  •  6
  •   Peter Lang    15 年前

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


    documentation :

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

    [如果……] module-A-present 属性设置为(任何值,例如 ,目标将运行。

        2
  •  5
  •   Richard Steele    14 年前

    在蚂蚁1.8中, if 现在检查值是否为真( unless 检查是否为false),因此您可以执行以下操作:

    <target name="blah" if="${do-blah}">
        .
        .
        .
    </target>