給 task 加入依賴

2018-07-01 16:11 更新

有許多種加入依賴的方式. 在 6.5 小節(jié), “任務(wù)依賴”里, 你已經(jīng)學(xué)習(xí)了如何使用任務(wù)的名稱定義依賴. 任務(wù)名稱可以指向同一個項目里的任務(wù), 或者其他項目里的任務(wù). 為了指向其他項目, 你必須在任務(wù)的名稱前加入項目的路徑. 下面的例子給 projectA:taskX 加入依賴 projectB:taskY :

例子 15.11. 從另外一個項目給任務(wù)加入依賴

build.gradle

project('projectA') {
    task taskX(dependsOn: ':projectB:taskY') << {
        println 'taskX'
    }
}

project('projectB') {
    task taskY << {
        println 'taskY'
    }
}

gradle -q taskX 的輸出

> gradle -q taskX
taskY
taskX

除了使用任務(wù)名稱, 你也可以定義一個依賴對象y:

例子 15.12. 通過任務(wù)對象加入依賴

build.gradle

task taskX << {
    println 'taskX'
}

task taskY << {
    println 'taskY'
}

taskX.dependsOn taskY

gradle -q taskX 的輸出

> gradle -q taskX
taskY
taskX

更加先進(jìn)的用法, 你可以通過閉包定義一個任務(wù)依賴. 閉包只能返回一個單獨(dú)的 Task 或者 Task 對象的 collection, 這些返回的任務(wù)就將被當(dāng)做依賴. 接下來的例子給 taskX 加入了一個復(fù)雜的依賴, 所有以 lib 開頭的任務(wù)都將在 taskX 之前執(zhí)行:

例子 15.13. 通過閉包加入依賴

build.gradle


task taskX << {
    println 'taskX'
}

taskX.dependsOn {
    tasks.findAll { task -> task.name.startsWith('lib') }
}

task lib1 << {
    println 'lib1'
}

task lib2 << {
    println 'lib2'
}

task notALib << {
    println 'notALib'
}

gradle -q taskX 的輸出

> gradle -q taskX
lib1
lib2
taskX

For more information about task dependencies, see the Task API.


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號