В скрипте сборки Ant, как вы проверяете наличие файла или каталога как зависимость для задачи? - PullRequest
1 голос
/ 08 февраля 2011

Начало работы над написанием моего первого скрипта сборки. Я не понимаю всю эту зависимость. Этот вид имеет смысл, когда ваша компиляция говорит java, и вам нужны объектные файлы для создания jar. Но что делать, если вы просто хотите проверить существование любого файла или каталога, который не является частью задачи компиляции?

Я смог использовать доступно , но я не знаю, как использовать результат этого в качестве зависимости для задачи

Ответы [ 2 ]

5 голосов
/ 08 февраля 2011

С чем-то вроде этого:

<project name="foo-bar" basedir=".">
    <target name="bar" depends="foo" unless="isAvailable">
     <echo message="file is not available" />
    </target>

    <target name="foo">
      <available file="${basedir}/path/to/file.java" property="isAvailable"/>
    </target>
</project>
  • Цель "bar" зависит от цели "foo".
  • Когда выполняется «foo», он проверяет наличие файла.
  • Если он существует, он устанавливает свойство isAvailable.
  • Цель "bar" будет выполняться и выводить сообщение только в том случае, если isAvailable не задано.

Вы также можете поместить <available> на «корневой уровень» вашей сборки (вне цели, как прямой дочерний элемент <project>, и он будет оценен до запуска любой из целей:

<project name="foo" basedir=".">

    <available file="${basedir}/path/to/file.java" property="isAvailable"/>

     <target name="bar" unless="isAvailable">
     <echo message="file is not available" />
    </target>
</project>
1 голос
/ 08 февраля 2011

Если вы хотите проверить, существует ли файл, посмотрите на available

...