У меня есть два каталога, назовем их src
и build
. Моя система сборки работает так, что для всех файлов с mtime более поздним в src
, чем в build
копирует файл из src
в buid
и делает некоторые преобразования (минификация, версионирование и т.д.). В противном случае пропускает, так как файл считается обновленным.
Однако это создает проблему, когда исходный файл удаляется, так как его встроенная версия все еще присутствует в build
и попадает в созданный впоследствии файл карты.
$ ls src
example1.js
example2.js
$ ant do-the-stuff
...
$ ls build
example1.js
example1-12345.min.js
example2.js
example2-23456.min.js
.map
$ cat .map
example1.js=example1-12345.min.js
example2.js=example2-23456.min.js
$ rm src/example2.js
$ ant do-the-stuff
...
$ cat .map
example1.js=example1-12345.min.js
example2.js=example2-23456.min.js
Есть ли способ удалить файлы, отсутствующие в другом каталоге, с помощью Ant? С точки зрения теории множеств это простая операция A\B.
Это то, что я уже пробовал, но не работал:
<delete dir="build">
<exclude name="src/*" />
</delete>
<delete dir="build">
<exclude>
<fileset name="src" />
</exclude>
</delete>
<delete dir="build">
<fileset dir="build/*">
<not>
<present targetdir="src" />
</not>
</fileset>
</delete>