我們在根項目中有一個settings.gradle和沒有build.gradle的多項目。Gradle多重項目,更改默認生成文件名(build.gradle)
gradle的默認行爲是查找頂部目錄中的settings.gradle文件並讀取之前定義的每個項目的build.gradle。
我的問題是:根據多項目已簽出的環境,我想在從根項目運行構建時運行默認的「build2.gradle」而不是「build.gradle」。
什麼是最好的辦法呢?
感謝
我們在根項目中有一個settings.gradle和沒有build.gradle的多項目。Gradle多重項目,更改默認生成文件名(build.gradle)
gradle的默認行爲是查找頂部目錄中的settings.gradle文件並讀取之前定義的每個項目的build.gradle。
我的問題是:根據多項目已簽出的環境,我想在從根項目運行構建時運行默認的「build2.gradle」而不是「build.gradle」。
什麼是最好的辦法呢?
感謝
OK,完成了...
在settings.gradle:
String myFileName="build2.gradle"
rootProject.buildFileName = "${myFileName}"
rootProject.children.each {project ->
project.buildFileName = "${myFileName}"
assert project.projectDir.isDirectory()
assert project.buildFile.isFile()
}
或者嵌套多項目在settings.gradle
:
setBuildFileName(rootProject)
def setBuildFileName(project) {
project.children.each { childProject ->
childProject.buildFileName = "${childProject.name}.gradle"
assert childProject.projectDir.isDirectory()
assert childProject.buildFile.isFile()
setBuildFileName(childProject)
}
}
我覺得這是非常有用的。閱讀用戶指南,我認爲這將從Gradle開箱即用,但事實並非如此。如果我錯了,請糾正我。 https://docs.gradle.org/current/userguide/intro_multi_project_builds.html 8.1 – Kilokahn