1

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

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

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

4

1 回答 1

3

善用资源。当空目录和非空目录混合在一起时,我相信您必须混合使用文件集和目录集才能使其与选择器一起使用,因为删除与选择器和文件集结合使用不适用于空目录。而如果你只有非空目录,您只能使用文件集部分 - 这是使用某种排序 + 日期选择器的片段,删除最新的 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 手册/资源

于 2011-05-16T20:16:47.587 回答