Ant目标删除旧的构建目录

时间:2011-05-16 17:06:36

标签: ant build build-process build.xml

我将我的构建发布到以下目录:

/some/dir/build-1/
/some/dir/build-2/
/some/dir/build-3/
...
/some/dir/build-n/

我需要ant任务来删除除最后三个(n,n-1和n-3)之外的所有以前的构建目录。
我想我应该使用<delete>任务,但是如何配置属性?

1 个答案:

答案 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