Проверьте файл существования в ant
Возможный дубликат:
Ant задача проверить, существует ли файл?
Как проверить, существует ли файл в каталоге, если не используется другой файл в другом месте. Я пробовал следовать, но не помогает мне тем, что я хочу. Кто-нибудь может помочь?
<condition property="somefile.available">
<or>
<available file="/home/doc/somefile"/>
<and>
<available file="/usr/local/somefile" />
</and>
</or>
</condition>
Ответы
Ответ 1
Используйте тесты условий, чтобы установить, присутствуют ли файлы. Тогда у вас есть цель для каждого истинного условия
<target name="go" depends="file-checks, do-something-with-first-file, do-something-with-second-file"/>
<target name="file-checks">
<available file="/home/doc/somefile" property="first.file.found"/>
<available file="/usr/local/somefile" property="second.file.found"/>
</target>
<target name="do-something-with-first-file" if="first.file.found">
???
</target>
<target name="do-something-with-second-file" if="second.file.found">
???
</target>
Ответ 2
Если вы не против использования ant -contrib, вы можете принять процедурный подход следующим образом:
<if>
<available file="file1"/>
<then>
<property name="file.exists" value="true"/>
</then>
<else>
<if>
<available file="file2"/>
<then>
<copy file="file2" tofile="file1"/>
<property name="file.exists" value="true"/>
</then>
</if>
</else>
</if>
В противном случае вы, вероятно, можете использовать целевую аудиторию, которая зависит от установленного свойства, указывающего, существует ли файл в предпочтительном месте, например Ant для запуска Ant target, только если файл существует?, но используя unless
вместо if
.