Если мы запустим сборку Gradle и одна из задач не будет выполнена, вся сборка немедленно остановится. Таким образом, у нас есть быстрый отзыв о нашем статусе сборки. Если мы не хотим этого и хотим, чтобы Gradle выполнил все задачи, хотя некоторые из них могли быть неудачными, мы используем параметр командной строки --continue . Когда мы используем --continue командной строки --continue Gradle выполнит все задачи, в которых зависимые задачи не завершаются. Это также полезно в многомодульном проекте, где мы можем захотеть построить все проекты, даже если у некоторых могут быть неудачные тесты, поэтому мы получаем полный обзор неудачных тестов для всех модулей.
В следующем файле сборки Gradle у нас есть две задачи. Задача failTask TaskExecutionException для преднамеренного сбоя задачи. successTask не подведет:
|
01
02
03
04
05
06
07
08
09
10
11
|
task failTask << { task -> println "Running ${task.name}" throw new TaskExecutionException( task, new Exception('Fail task on purpose')) }task successTask << { println "Running ${it.name}"} |
Давайте запустим обе задачи из командной строки и посмотрим на результат:
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
|
$ gradle failTask successTask:failTaskRunning failTask:failTask FAILEDFAILURE: Build failed with an exception.* Where:Build file '/Users/mrhaki/samples/gradle/continue/build.gradle' line: 4* What went wrong:Execution failed for task ':failTask'.> Fail task on purpose* Try:Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.BUILD FAILEDTotal time: 4.148 secs$ |
Мы видим, что сборка не удалась, и выполняется только задача failTask . Теперь мы запускаем те же две задачи, но используем параметр командной строки --continue :
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
$ gradle --continue failTask successTask:failTaskRunning failTask:failTask FAILED:successTaskRunning successTaskFAILURE: Build failed with an exception.* Where:Build file '/Users/mrhaki/samples/gradle/continue/build.gradle' line: 4* What went wrong:Execution failed for task ':failTask'.> Fail task on purpose* Try:Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.BUILD FAILEDTotal time: 6.918 secs$ |
На этот раз successTask выполняется, хотя failTask снова не удалось. Gradle будет отслеживать все задачи, которые не были выполнены, и отображает сводную информацию обо всех задачах, которые не удалось выполнить.
| Ссылка: | Совершенство Gradle: продолжить сборку даже с ошибочными заданиями от нашего партнера по JCG Хьюберта Кляйна Иккинка в блоге JDriven . |