Может ли 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 в скрипт, который проверял бы и выводил все сбойные файлы сразу, если это было необходимо.

0 ответов

Другие вопросы по тегам