Gradle如何在任務失敗後繼續構建

若是咱們運行Gradle構建而且其中一項任務失敗,則整個構建將當即中止。所以,咱們能夠快速反饋構建狀態。若是咱們不想這樣作,而且但願Gradle執行全部任務,即便某些任務可能失敗了,咱們也可使用命令行選項--continue。當咱們使用--continue命令行選項時,Gradle將執行從屬任務沒有失敗的全部任務。這在多模塊項目中也頗有用,即便在某些項目中測試可能失敗,咱們也可能但願構建全部項目,所以咱們能夠全面瞭解全部模塊的失敗測試。java

在下面的Gradle構建文件中,咱們有兩個任務。任務failTask拋出TaskExecutionException故意使任務失敗。該successTask不會失敗:編程

task failTask << { task ->
    println "Running ${task.name}"
 
    throw new TaskExecutionException(
            task, 
            new Exception('Fail task on purpose')) 
}
 
task successTask << {
    println "Running ${it.name}"
}

讓咱們從命令行運行這兩個任務並查看輸出:框架

$ gradle failTask successTask
:failTask
Running failTask
:failTask FAILED
 
FAILURE: 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 FAILED
 
Total time: 4.148 secs
$

咱們看到構建失敗,僅failTask執行任務。如今咱們運行相同的兩個任務,可是咱們使用命令行選項--continue性能

$ gradle --continue failTask successTask
:failTask
Running failTask
:failTask FAILED
:successTask
Running successTask
 
FAILURE: 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 FAILED
 
Total time: 6.918 secs
$

此次,successTask即便failTask再次失敗,也會執行。Gradle將跟蹤全部失敗的任務,並顯示全部失敗任務的摘要。測試

技術類文章精選

非技術文章精選

相關文章
相關標籤/搜索