Как правильно настроить селектор Ant <modified> - PullRequest
6 голосов
/ 26 сентября 2010

У меня есть цель в ANT, которая должна запускать компилятор для данного набора файлов дважды: один раз для отладки, один раз для производства. Я хочу запускать компилятор только в том случае, если исходный файл изменился, поэтому я установил селектор <modified>. Однако, поскольку мне нужно, чтобы для заданного измененного файла выполнялись задачи отладки и prod, я установил для свойства update значение false при первом запуске. У меня есть что-то вроде:

<!-- Do the debug build -->
<apply executable="compiler">
    <fileset dir="${js.src.dir}" includes="*.js">
        <!-- don't update the cache so the prod build below works -->
        <modified update="false" 
            seldirs="true"
            cache="propertyfile"
            algorithm="digest"
            comparator="equal">
          <param name="cache.cachefile" value="cache.properties"/>
          <param name="algorithm.algorithm" value="md5"/>
        </modified>
    </fileset>
    <args for debug build/>
</apply>
<!-- Do the production build -->
<apply executable="compiler">
    <fileset dir="${js.src.dir}" includes="*.js">
        <modified update="true" 
            seldirs="true"
            cache="propertyfile"
            algorithm="digest"
            comparator="equal">
          <param name="cache.cachefile" value="cache.properties"/>
          <param name="algorithm.algorithm" value="md5"/>
        </modified>
    </fileset>
    <args for prod build/>
</apply>

Однако это не работает. Мой первый вызов компилятору заканчивается обновлением кэша в любом случае, а второй вызов пропускается. Что мне здесь не хватает?

ОБНОВЛЕНИЕ : я обошел проблему, используя вместо этого селектор <depend>, но все же любопытно, как сделать то же самое, используя <modified>

1 Ответ

2 голосов
/ 26 марта 2011

обновление не работает до версии 1.8.0:

https://issues.apache.org/bugzilla/show_bug.cgi?id=32597

Исправление заняло всего около 5 лет!

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