W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
有許多種加入依賴的方式. 在 6.5 小節(jié), “任務(wù)依賴”里, 你已經(jīng)學(xué)習(xí)了如何使用任務(wù)的名稱定義依賴. 任務(wù)名稱可以指向同一個(gè)項(xiàng)目里的任務(wù), 或者其他項(xiàng)目里的任務(wù). 為了指向其他項(xiàng)目, 你必須在任務(wù)的名稱前加入項(xiàng)目的路徑. 下面的例子給 projectA:taskX 加入依賴 projectB:taskY :
例子 15.11. 從另外一個(gè)項(xiàng)目給任務(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ù)名稱, 你也可以定義一個(gè)依賴對(duì)象y:
例子 15.12. 通過(guò)任務(wù)對(duì)象加入依賴
build.gradle
task taskX << {
println 'taskX'
}
task taskY << {
println 'taskY'
}
taskX.dependsOn taskY
gradle -q taskX 的輸出
> gradle -q taskX
taskY
taskX
更加先進(jìn)的用法, 你可以通過(guò)閉包定義一個(gè)任務(wù)依賴. 閉包只能返回一個(gè)單獨(dú)的 Task 或者 Task 對(duì)象的 collection, 這些返回的任務(wù)就將被當(dāng)做依賴. 接下來(lái)的例子給 taskX 加入了一個(gè)復(fù)雜的依賴, 所有以 lib 開(kāi)頭的任務(wù)都將在 taskX 之前執(zhí)行:
例子 15.13. 通過(guò)閉包加入依賴
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.
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: