W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
正如我們之后的詳細(xì)描述 (參見第55章,構(gòu)建的生命周期), Gradle 有一個(gè)配置階段和執(zhí)行階段. 在配置階段后, Gradle 將會(huì)知道應(yīng)執(zhí)行的所有任務(wù). Gradle 為你提供一個(gè)"鉤子", 以便利用這些信息. 舉個(gè)例子, 判斷發(fā)布的任務(wù)是否在要被執(zhí)行的任務(wù)當(dāng)中. 根據(jù)這一點(diǎn), 你可以給一些變量指定不同的值.
在接下來(lái)的例子中, distribution 任務(wù)和 release 任務(wù)將根據(jù)變量的版本產(chǎn)生不同的值.
例子 6.16. 根據(jù)選擇的任務(wù)產(chǎn)生不同的輸出
build.gradle
task distribution << {
println "We build the zip with version=$version"
}
task release(dependsOn: 'distribution') << {
println 'We release now'
}
gradle.taskGraph.whenReady {taskGraph ->
if (taskGraph.hasTask(release)) {
version = '1.0'
} else {
version = '1.0-SNAPSHOT'
}
}
gradle -q distribution 命令的輸出
> gradle -q distribution
We build the zip with version=1.0-SNAPSHOT
Output of gradle -q release
> gradle -q release
We build the zip with version=1.0
We release now
最重要的是 whenReady 在 release 任務(wù)執(zhí)行之前就已經(jīng)影響了 release 任務(wù). 甚至 release 任務(wù)不是首要任務(wù) (i.e., 首要任務(wù)是指通過 gradle 命令的任務(wù)).
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)系方式:
更多建議: