Свойство установлено в false, но цель все еще выполняется - PullRequest
5 голосов
/ 27 апреля 2010

Вот простой файл сборки 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 ]

6 голосов
/ 27 апреля 2010

if не проверяет значение свойства, оно проверяет, установлено ли свойство.


Из документации :

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

[...] если установлено свойство module-A-present (любое значение, например false ), цель будет выполнена.

5 голосов
/ 23 апреля 2011

В Ant 1.8 if теперь проверяет, является ли значение истинным (unless проверяет на ложность), поэтому вы можете сделать:

<target name="blah" if="${do-blah}">
    .
    .
    .
</target>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...