У меня есть цель build.xml
, которая создает Zip-файл. Чтобы избежать создания Zip-архива, если ни один файл не обновлялся, я хотел бы заранее проверить наличие обновлений. AFAIK, uptodate
- это задача, которую нужно использовать.
Вот соответствующие (упрощенные) разделы скрипта:
<filelist id="zip-files">
<file name="C:/main.exe" />
<file name="D:/other.dll" />
</filelist>
<target name="zip" depends="zip-check" unless="zip-uptodate">
<zip destfile="${zip-file}" >
<filelist refid="zip-files" />
</zip>
</target>
<target name="zip-check">
<uptodate property="zip-uptodate"
targetfile="${zip-file}">
<srcfiles refid="zip-files" />
</uptodate>
</target>
Однако uptodate
не удается, потому что srcfiles
должны ссылаться на набор файлов
, а не на список файлов
. Тем не менее, я не могу использовать набор файлов
, потому что для него потребуется атрибут dir
, который я не могу установить, поскольку исходные файлы не имеют общего базового каталога.
Конечно, , Я мог просто скопировать все файлы в общий каталог перед их архивированием, чтобы использовать набор файлов
, но мне было интересно, есть ли альтернативное решение.
Я использую Ant 1.8. 1