Существует ли задача ANT, которая будет выполнять блок, только если данный файл существует? У меня проблема в том, что у меня есть общий муравей сценарий, который должен выполнять некоторую специальную обработку, но только при наличии определенного файла конфигурации.
file
ant
build-automation
Марио Ортегон
источник
источник
Ответы:
Доступен и Состояние
источник
if
иunless
атрибуты только включить или отключить цель , к которой они присоединены, то есть зависимости , направленная всегда выполняются. В противном случае не будет зависеть от цели, которая устанавливает свойство, которое вы проверяете.<Available>
не рекомендуется. Я использовал это:<target name="do-if-abc" if="${file::exists('abc.txt')}"> ... </target>
check: nant.sourceforge.net/release/0.85/help/functions/…<available>
устарела? 2:${file::existst...}
похоже, не работает с Ant (Apache ANT 1.9.7)Это может иметь немного больше смысла с точки зрения кодирования (доступно с ant-contrib: http://ant-contrib.sourceforge.net/ ):
источник
Начиная с Ant 1.8.0, по-видимому, также существует ресурс
От http://ant.apache.org/manual/Tasks/conditions.html
Я собирался переделать пример из приведенного выше хорошего ответа на этот вопрос, а потом нашел это
из руководства по муравьям по адресу http://ant.apache.org/manual/properties.html#if+unless
Надеюсь, этот пример пригодится некоторым. Они не используют ресурсные ресурсы, но, вероятно, вы могли бы? .....
источник
if="${file.exists}"
следует заменить наif="file.exists"
asif
иunless
проверять только наличие свойства по имени, а не по его значению.Я думаю, что стоит сослаться на этот аналогичный ответ: https://stackoverflow.com/a/5288804/64313
Вот еще одно быстрое решение. Существуют и другие варианты этого
<available>
тега:источник
Проверьте использование файловых фильтров, например
DB_*/**/*.sql
Вот вариант выполнения действия, если существует один или несколько файлов, соответствующих фильтру по шаблону. То есть вы не знаете точное имя файла.
Здесь мы ищем файлы " * .sql " в любых подкаталогах с именем " DB_ * ", рекурсивно. Вы можете настроить фильтр в соответствии с вашими потребностями.
NB: Apache Ant 1.7 и выше!
Вот цель для установки свойства, если существуют соответствующие файлы:
Вот «условная» цель, которая запускается, только если файлы существуют:
источник
Вы можете сделать это, приказав выполнить операцию со списком файлов с именами, равными нужным вам именам. Это гораздо проще и прямолинейнее, чем создавать особую цель. И вам не нужны никакие дополнительные инструменты, просто чистый муравей.
Смотрите: FileSet .
источник