Может ли Apache Ant полностью выполнить задачу над набором файлов, не останавливаясь при первом сбое?
У меня есть цель, настроенная в ant, которая запускает проверку PHP lint для всех измененных файлов с момента последней проверки.
<target
name="lint"
unless="lint.done">
<apply executable="php" taskname="lint" failonerror="true">
<arg value="-l">
<fileset dir="...">
<include name="**/*.php">
<modified/>
</fileset>
</apply>
</target>
К сожалению, если это не удастся из-за того, что один файл не прошел проверку lint, все остальные файлы не будут проверены на lint, но все равно будут сохранены в измененном кэше. Файл, вызвавший сбой, также будет кэширован modified
Это означает, что при следующем запуске проверка будет пройдена, даже если не было внесено никаких изменений, чтобы устранить причину неудачной проверки.
В конце концов, если возникнет ошибка lint, сборка не удастся. Тяжелая часть - попытаться заставить его потерпеть неудачу и не остановиться до того, как он закончит вязать.
Решения будут заключаться в следующем:
- Если проверка не удалась, не обновляйте измененный кеш.
- Если проверка не удалась для одного файла, продолжайте помечать другие файлы, но помечайте сборку как сбойную.
Возможно ли одно из этих решений?
Для этого первого пункта я знаю, что вы можете передать аргумент modified
который останавливает обновление кэша. Не могли бы вы тогда позвонить второй modified
после проверки lint кэшировать файлы, только если проверка прошла успешно?
Во-вторых, основной способ, который я могу придумать, состоит в том, чтобы не потерпеть неудачу при ошибке lint, а передать результаты lint в скрипт, который проверял бы и выводил все сбойные файлы сразу, если это было необходимо.