Муравей разве атрибут не работает? - PullRequest
5 голосов
/ 04 мая 2011

Я, должно быть, неправильно понимаю атрибут unless. У меня есть файл свойств, который имеет свойство следующим образом:

module.project.enabled=false
module.finance.enabled=true

И в моем файле сборки Ant есть следующий фрагмент

<echo message="Finance module enabled is ${module.finance.enabled}"/>
<echo message="Project module enabled is ${module.project.enabled}"/>
<javac srcdir="src" destdir="${classes}" debug="true">
    <classpath>
        <pathelement path="src"/>
        <fileset dir="web/WEB-INF/lib" includes="*.jar"/>
        <fileset dir="lib" includes="*.jar"/>
        <fileset dir="${GWT.HOME}" includes="gwt-user.jar,gwt-servlet.jar"/>
    </classpath>
    <exclude name="bla/finance/*.java" unless="${module.finance.enabled}"/>
    <exclude name="bla/project/*.java" unless="${module.project.enabled}"/>
</javac>

Когда запускается моя цель-муравей, свойства, похоже, читаются

 [echo] Finance module enabled is true
 [echo] Project module enabled is false

Но когда я посмотрю на каталог ${classes}, я ожидал увидеть не классы в пакете проекта и классы в пакете финансов, но, увы, похоже, что он исключает оба пакета?

1 Ответ

10 голосов
/ 04 мая 2011

Для Ant 1.7 и более ранних версий атрибуты if и unless проверяют только, установлено ли свойство.Они на самом деле не проверяют значение.Фактически вы можете установить его на что угодно, и это будет оцениваться как true для if и false для unless.Аналогично, если вы не установите его вообще, вы получите false для if и true для unless.

В любом случае я не знаю о if и unlessбыть доступным для <exclude>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...