2011-01-05 2 views

ответ

2

Если вы просто хотите увидеть предупреждение от «Concat» задачи, если файл отсутствует, вы можете использовать filelistresource collection вместо «»: набор файлов

<concat destfile="dist/external.js"> 
    <filelist dir="."> 
    <file name="a.js" /> 
    <file name="b.js" /> 
    </filelist> 
</concat> 

Когда b.js не существуют, что дает сообщение:

[concat] /Path/.../b.js does not exist. 

Но все равно продолжается, что, вероятно, не то, что вы хотите.

Один из способов проверки наличия всех файлов в коллекции ресурсов заключается в следующем. Обратите внимание, что вам нужно добавить в проект пространство имен antilib: org.apache.tools.ant.types.resources.selectors для использования приведенного ниже resource selectors. (Это не будет работать для версий Ant старше 1.7.0.) Используйте Ant fail task, чтобы проверить отсутствие ресурсов.

<project name="stack_overflow" 
     xmlns:rsel="antlib:org.apache.tools.ant.types.resources.selectors"> 

<filelist id="my.js.files" dir="."> 
    <file name="a.js" /> 
    <file name="b.js" /> 
</filelist> 

<restrict id="missing.js.files"> 
    <filelist refid="my.js.files"/> 
    <rsel:not> 
    <rsel:exists/> 
    </rsel:not> 
</restrict> 

<property name="missing.files" refid="missing.js.files" /> 
<fail message="These files are missing: ${missing.files}"> 
    <condition> 
    <length string="${missing.files}" when="greater" length="0" /> 
    </condition> 
</fail> 
<concat destfile="dist/external.js"> 
    <filelist refid="my.js.files" /> 
</concat> 

</project> 

При запуске, как и прежде с b.js отсутствует, это не может строить до «Concat» задачи с:

BUILD FAILED 
/Path/.../build.xml:17: These files are missing: /Path/.../b.js 
+0

Извините за столь долго звенеть это как правильно, я нашел это на мой собственный и полностью забыл о вопросе! Кажется, что набор файлов и список файлов - это разные вещи, я считаю, что набор файлов работает лучше, потому что он просто удаляет файл в любом порядке независимо от того, существуют они или нет. Список файлов ищет каждый файл и сбой, если он не существует. – Drew

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