我正在玩用Eclipse的STS插件進行Gradle多項目構建。我在閱讀tutorial後認爲我已經掌握了基礎知識,但我無法重現所顯示的行爲。當添加Gradle多項目任務執行行爲
allprojects {
task hello << {task -> println "I'm $task.project.name" }
}
subprojects {
hello << {println "- I GradleMaster"}
}
to build.gradle的父項目我會假設爲每個項目執行任務'你好'。對於子項目實際上2倍,但結果只有:
[sts] -----------------------------------------------------
[sts] Starting Gradle build for the following tasks:
[sts] :hello
[sts] -----------------------------------------------------
:hello
I'm GradleMaster
BUILD SUCCESSFUL
我的項目樹看起來或多或少是這樣的:
Application/
GradleMaster/
build.gradle
settings.gradle
EAR/
build.gradle
EJB/
build.gradle
AppClient/
build.gradle
GradleMaster/settings.gradle:
include ':EAR', ':EJB', ':AppClient'
如您所見,父項目與子項目處於同一級別。我已經將其與根級項目的另一種方式相提並論,但我沒有注意到任何差異。
我也想知道在所有項目都有共同的根項目上執行任務時gradle的行爲。例如,如果所有應用「基本」插件的應用程序都不應該對根項目進行「清理」,則會導致所有子項目也執行它們的「乾淨」版本?