Как мне проверить, что каталог ANT пуст? - PullRequest
16 голосов
/ 15 июня 2010

Как можно проверить, что каталог в ant пуст?

Ответы [ 3 ]

18 голосов
/ 15 июня 2010

Для этого можно использовать задачу pathconvert со свойством setonempty.См. этот пример для случая использования.

<pathconvert refid="myfileset"
             property="fileset.notempty"
             setonempty="false"/>

установит свойство fileset.notempty только в том случае, если набор файлов с этими refid myfileset не пуст.Вам просто нужно определить myfileset с вашим каталогом, и никакие исключения не получают пустой тест каталога:

<fileset dir="foo/bar" id="myfileset"/>
3 голосов
/ 06 августа 2013

Это просто дополнение к ответу tonio .

. В этом примере cvs checkout эмулируется с помощью команд git:

  • git cloneкогда dir пусто
  • git fetch остальное

<target name="cvs_checkout" depends="git.clone, git.fetch" />

<target name="git.clone" depends="check.dir" unless="dir.contains-files">
  <echo message="Directory ${dir} is empty -} git clone" />
  <exec executable="git">
    <arg value="clone"/>
    <arg value="${repo}"/>
    <arg value="${dir}"/>
  </exec>
</target>

<target name="git.fetch" depends="check.dir" if="dir.contains-files">
  <echo message="Directory ${dir} contains files -} git fetch" />
  <exec executable="git" dir="${dir}">
    <arg value="fetch"/>
  </exec>
</target>

<target name="check.dir">
  <fileset dir="${dir}" id="fileset"/>
  <pathconvert refid="fileset" property="dir.contains-files" setonempty="false"/>
</target>
0 голосов
/ 30 декабря 2018

скриптовое решение, которое устанавливает свойство только тогда, когда каталог пуст:

<script language="javascript">
    tests = new java.io.File(project.getProperty("source.test.java.dir"));
    if (tests.list().length == 0) {
        java.lang.System.out.println('no tests: skip.test=true');
        project.setProperty("skip.test", true);
    }
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...