Может ли Apache Ant полностью выполнить задачу над набором файлов, не останавливаясь при первом сбое?

227
Sean

У меня есть цель, настроенная в 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.

В конце концов, если возникнет ошибка lint, сборка не удастся. Тяжелая часть - попытаться заставить его потерпеть неудачу и не остановиться до тех пор, пока он не закончит линтинг.

Решения будут заключаться в следующем:

  • Если проверка не удалась, не обновляйте измененный кеш.
  • Если проверка не удалась для одного файла, продолжайте помечать другие файлы, но помечайте сборку как сбойную.

Возможно ли одно из этих решений?

Для этого первого пункта я знаю, что вы можете передать аргумент, modifiedкоторый останавливает обновление кэша. Не могли бы вы затем вызвать секунду modifiedпосле проверки lint, чтобы кэшировать файлы, только если проверка прошла успешно?

Во-вторых, основной способ, который я могу придумать, - не сбои при ошибке lint, а передача результатов lint в скрипт, который будет проверять и выводить все сбойные файлы одновременно, если это необходимо.

1
Просто к сведению: изначально он был опубликован в StackOverflow, но был удален, потому что я не знал, для какого сайта лучше всего подойдет этот вопрос. Sean 8 лет назад 0

0 ответов на вопрос