Пока работает <touch>
, он обновляет даты файла в месте назначения, и поэтому он не совсем соответствует запросу.
Согласно документации. Если у вас есть хотя бы Ant 1.6.2, вы можете использовать атрибут granularity.
Количество миллисекунд, которое нужно дать, прежде чем принять решение о файле
устаревший. Это необходимо, потому что не каждая файловая система поддерживает
отслеживание последнего измененного времени до миллисекундного уровня. По умолчанию 1
секунда или 2 секунды в системах DOS. Это также может быть полезно, если источник
и целевые файлы живут на отдельных машинах с часами вне
синхронизации. начиная с Ant 1.6.2.
просто установите его на большое число. Я использую 9223372036854, что должно быть около 292 лет (вероятно, этого достаточно). (Я только что отрубил последние 6 цифр от Long.max), что достаточно, чтобы не генерировать предупреждения о датах на будущее
<copy todir="${dest.dir}" overwrite="false" granularity="9223372036854">
<fileset dir="${src.dir}"/>
</copy>
это будет гарантировать, что если файлы есть на всех , они будут считаться недостаточно старыми для задачи ant и, следовательно, не будут перезаписаны (и также не затронуты другой задачей)