我有两个目录,我们称它们src
为build
. 我的构建系统可以工作,因此对于所有 mtimesrc
比其中更新的文件,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>