Gradle的Task(2)任務間的依賴關系

上一篇文章中我們介紹了如何自定義簡單的任務。本文將通過如下四個簡單任務來說明任務之間的依賴關系。

task compile << {
    println "Compiled"
}
task unitTest << {
    println "Unit test"
}
task uiTest << {
    println "UI test"
}
task clean << {
    println "Clean"
}
  1. 可以使用Task的dependsOn(Object... paths) method來指定依賴關系。例如 ,unitTest依賴于compile。
unitTest.dependsOn compile

執(zhí)行gradle unitTest -q會輸出如下結果。

Compiled
Unit test
  1. Gradle中的task之間的關系可以用有向無環(huán)圖(DAG)來表示。任務之間不能互相依賴,否則Gradle會報錯。
unitTest.dependsOn compile
compile.dependsOn unitTest

執(zhí)行gradle unitTest會報錯Circular dependency。

  1. 沒有依賴關系的任務之間可以通過mustRunAfter()finalizedBy()等method來指定任務的執(zhí)行順序。舉例如下:uiTest和unitTest都依賴于compile,那么如何保證uiTest總是在unitTest之后執(zhí)行呢?答案就是使用mustRunAfter()。
uiTest.mustRunAfter unitTest

執(zhí)行gradle uiTest unitTest -q會輸出如下結果,說明unitTest是在uiTest之前運行的。

Compiled
Unit test
UI test
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現,斷路器,智...
    卡卡羅2017閱讀 136,537評論 19 139
  • 前言 學習gradle這個想法在我開始使用AndroidStudio之后就有了,基本上每個開始使用AndroidS...
    AnAppleADie閱讀 3,745評論 2 19
  • 導語: 隨著技術的發(fā)展,不管是前端開發(fā)、服務端開發(fā)或者是移動端開發(fā)(移動也是前端的一個分支)中都會用到自動化構建工...
    伊始雨深閱讀 3,145評論 0 4
  • Gradle對于很多開發(fā)者來說有一種既熟悉又陌生的感覺,他是離我們那么近,以至于我每天做項目都需要他,但是他又是離...
    阿_希爸閱讀 9,700評論 10 199
  • 1、個人價值的體現 差異化因素才是你的價值所在。差異化在所在的行業(yè)中越明顯,你的個人競爭力也就越強,可替代性也就會...
    好聽的暖陽閱讀 212評論 1 4

友情鏈接更多精彩內容