我将我的构建发布到以下目录:
/some/dir/build-1/
/some/dir/build-2/
/some/dir/build-3/
...
/some/dir/build-n/
我需要ant任务来删除除最后三个(n,n-1和n-3)之外的所有以前的构建目录。
我想我应该使用<delete>
任务,但是如何配置属性?
答案 0 :(得分:3)
利用资源。当空目录和非空目录混淆时,我相信你必须使用fileset和dirset的混合来使它与选择器一起使用,因为与selectors和fileset结合使用delete对于空目录不起作用。如果你只有你可以使用文件集部分的非空目录 - 这是使用某种排序+日期选择器的片段,删除最新的3个目录=
<project name="foo">
<delete includeEmptyDirs="true" verbose="true">
<last count="3">
<sort>
<date/>
<fileset dir="/some/dir">
<include name="**/*build*/**" />
</fileset>
</sort>
</last>
</delete>
<delete verbose="true">
<last count="3">
<sort>
<date/>
<dirset dir="/some/dir">
<include name="**/*build*/**" />
</dirset>
</sort>
</last>
</delete>
</project>
有关详细信息,请参阅Ant Manual/Resources。