我有以下項目結構如何在子項目任務結束一次執行任務的搖籃
Project
|-Subproject1
|-Subproject2
|build.gradle
|settings.gradle
子模塊都包含在settings.gradle
和根項目的build.gradle
配置的工作。
我有3個任務做
build
(每個子項目有這個)deploy
(這是一個包裝機制,每一個子項目需要對自己的工作)finalizeDeployment
(這需要只能調用一次)
我想打電話給
$gradle deploy
< - 所有子項目得到部署並最終確定被末
$gradle Subproject1:deploy
<稱爲一次 - Subproject1得到部署並最終確定被稱爲
的build.gradle
configure(subprojects) {
task build <<{
println "Do Build "+ project.name
}
task deploy(dependsOn:build){
println 'deploy '+project.name
doLast{
finalizeDeployment.execute()
}
}
}
task finalizeDeployment{
dependsOn subprojects.deploy
doLast{
println 'Finalize Deployment'
}
}
我喜歡周圍的工作,爲解決方案。然而,(由於Gradle的當前狀態),調用邏輯仍然有點令人困惑,因爲您需要調用deployFinalize以使同名任務最後運行(直觀地可以預期它將首先運行)。 – ZenBalance 2013-07-30 20:54:55
@ZenBalance你期望它首先運行的原因是什麼?不是確保最後運行的最後一行(取決於所有子項目的部署任務)。 – TWiStErRob 2015-06-24 16:40:38