Как использовать список файлов в качестве набора файлов в обновленной команде Ant?

У меня есть цель 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

10
задан Jean-François Fabre 25 February 2019 в 13:19
поделиться