給 task 加入依賴

2018-07-01 16:11 更新

有許多種加入依賴的方式. 在 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.


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)