2012-11-21 1 views
1

У нас есть набор файлов в нашем Ant сборки, которая выглядит следующим образом:Есть ли недостающий файловый эквивалент erroronmissingdir в Ant?

<fileset dir="somewhere/lib" includesfile="third-party-jars.txt"/> 

Каждый сосуд затем прописано в полном объеме в текстовом файле. (Причина, по которой мы имеем это в отдельном текстовом файле, на самом деле не связана с сокращением файла сборки, а скорее с тем, что легче проверить список из теста интеграции, который у нас есть, который проверяет документацию всех сторонних файлов jar-файлов.)

Кто-то сделал фиксацию, которая помешала файлу войти в сборку. Ant не достал отсутствующий файл вообще - продолжалось строительство. Похоже, что даже если имена файлов указаны полностью, отсутствующий файл не обнаружен ... поэтому я пытаюсь решить это сейчас.

Существует атрибут для erroronmissingdir, но добавление его не помогает (dir не пропал.) Есть ли способ получить сообщение об ошибке в файлах с файлами? Идеально компактный способ ... потому что у нас есть более одного из этих наборов файлов и дублирующий код не звучит привлекательно.

Другие люди попросили более простые варианты этого, где они хотели проверить один файл. Чтобы проверить один файл, вы используете задачу available. Похоже, available поддерживает только один ресурс.

Я сделал попытку ограничить сбор ресурсов, чтобы попытаться найти доступные или недоступные ресурсы.

<restrict id="temp.available"><resources refid="@{ref-name}"/></restrict> 
<difference id="temp.unavailable"> 
    <resources refid="@{ref-name}"/> 
    <resources refid="temp.available"/> 
</difference> 
<fail message="Missing stuff"> 
    <condition> 
    <resourcecount refid="temp.unavailable" when="greater" count="0"/> 
    </condition> 
</fail> 

Это не работает, похоже, потому что в коллекции ресурсов уже отсутствуют элементы, которых не существует.

ответ

0

То, о чем вы просите, невозможно получить с помощью родной поддержки fileset. fileset работает как сканер: он основан на определенном каталоге и включает все файлы в соответствии с шаблонами включения/исключения, которые вы предоставляете. Даже erroronmissingdir не был частью fileset до Ant 1.7 или около того.

Лучше всего написать макрос вокруг задачи available, передав коллекцию ресурсов макросу и использовать цикл for (из Ant-Contrib), чтобы проверить доступность каждого файла.

+0

Хмм, независимо от того, что я делаю с , он утверждает, что ресурс недоступен даже для ресурсов, которые явно есть. :/Я предполагаю, что это имеет какое-то отношение к моему использованию наборов файлов на основе некорневого каталога или, возможно, с использованием сопоставленных ресурсов. – Trejkaz

+0

Это очень странно. Попробуйте запустить Ant, используя переключатель '-d'. – Isaac

 Смежные вопросы

  • Нет связанных вопросов^_^