Цель Ant для удаления старых каталогов сборки - PullRequest
1 голос
/ 16 мая 2011

Мои сборки опубликованы в таких каталогах, как:

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

Мне нужна задача ant для удаления всех предыдущих каталогов сборки, кроме последних трех (n, n-1 и n-3).
Я полагаю, я должен использовать задачу <delete>, но как настроить атрибуты?

1 Ответ

3 голосов
/ 17 мая 2011

Используйте ресурсы.Когда смешиваются пустые и непустые каталоги, я полагаю, что вы должны использовать сочетание набора файлов и dirset, чтобы он работал с селекторами, потому что удаление в сочетании с селекторами и набором файлов не будет работать для пустых каталогов. Хотя, если у вас есть тольконепустые каталоги, вы можете использовать только часть набора файлов - вот фрагмент, использующий некоторый селектор + селектор даты, удаляющий последние 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 / Ресурсы для получения дополнительной информации..

...