Gradle 多项目自定义 build.gradle 文件名
Gradle multi-project custom build.gradle file name
我有一个多项目 Gradle 构建,目前通过单个 build.gradle 文件进行配置。
这个项目中有超过 70 个模块,单个(巨大的)build.gradle 文件使用起来很麻烦,所以我想把它分成小的每个模块构建脚本文件。
现在,我不想拥有 70 个小 build.gradle 文件(每个模块一个),因为这会使导航到特定 build.gradle 成为 IDE(文件之间的唯一区别是它们的路径)。
我想要的是我的每个模块构建脚本文件以模块名称命名。
而不是这个:
root
|--foo\
|--| build.gradle
|--bar\
|--| build.gradle
我想要这个:
root
|--foo\
|--| foo.gradle
|--bar\
|--| bar.gradle
因为这似乎没有得到官方支持,我尝试绕过根 build.gradle 一点,但似乎在配置项目之前应用了 .gradle 文件,所以这给依赖于其他项目的项目一个错误:
根 build.gradle:
subprojects { subProject ->
rootProject.apply from: "${subProject.name}/${subProject.name}.gradle"
}
foo.gradle,这不是标准的 build.gradle 文件:
project('foo') {
dependencies {
compile project(':bar')
}
}
有没有办法让它像这样工作?
您可以在 settings.gradle
文件中自定义构建脚本的名称。查看 Ben Muschko 最近关于 multi-project builds or look at Gradle sources 进行类似定制的演示文稿。
rootProject.children.each {
it.buildFileName = it.name + '.gradle'
}
网络搜索“gradle 重命名 build.gradle”呈现以下示例 settings.gradle 文件:
rootProject.buildFileName = 'epub-organizer.gradle'
rootProject.children.each { project ->
String fileBaseName = project.name.replaceAll("\p{Upper}") { "-${it.toLowerCase()}" }
project.buildFileName = "${fileBaseName}.gradle"
}
请注意,作者在这里还重命名了根项目的构建脚本,您可能想要也可能不想要。
Gradle 的作者之一 Hans Dockter 在某处说过(我相信是在他的 "Rocking the Gradle" demo from 2012 中),他认为他们最大的错误之一是使用 build.gradle
作为默认文件名。
您可以在Gradle中找到此内容,manning
我有一个多项目 Gradle 构建,目前通过单个 build.gradle 文件进行配置。
这个项目中有超过 70 个模块,单个(巨大的)build.gradle 文件使用起来很麻烦,所以我想把它分成小的每个模块构建脚本文件。
现在,我不想拥有 70 个小 build.gradle 文件(每个模块一个),因为这会使导航到特定 build.gradle 成为 IDE(文件之间的唯一区别是它们的路径)。
我想要的是我的每个模块构建脚本文件以模块名称命名。
而不是这个:
root
|--foo\
|--| build.gradle
|--bar\
|--| build.gradle
我想要这个:
root
|--foo\
|--| foo.gradle
|--bar\
|--| bar.gradle
因为这似乎没有得到官方支持,我尝试绕过根 build.gradle 一点,但似乎在配置项目之前应用了 .gradle 文件,所以这给依赖于其他项目的项目一个错误:
根 build.gradle:
subprojects { subProject ->
rootProject.apply from: "${subProject.name}/${subProject.name}.gradle"
}
foo.gradle,这不是标准的 build.gradle 文件:
project('foo') {
dependencies {
compile project(':bar')
}
}
有没有办法让它像这样工作?
您可以在 settings.gradle
文件中自定义构建脚本的名称。查看 Ben Muschko 最近关于 multi-project builds or look at Gradle sources 进行类似定制的演示文稿。
rootProject.children.each {
it.buildFileName = it.name + '.gradle'
}
网络搜索“gradle 重命名 build.gradle”呈现以下示例 settings.gradle 文件:
rootProject.buildFileName = 'epub-organizer.gradle'
rootProject.children.each { project ->
String fileBaseName = project.name.replaceAll("\p{Upper}") { "-${it.toLowerCase()}" }
project.buildFileName = "${fileBaseName}.gradle"
}
请注意,作者在这里还重命名了根项目的构建脚本,您可能想要也可能不想要。
Gradle 的作者之一 Hans Dockter 在某处说过(我相信是在他的 "Rocking the Gradle" demo from 2012 中),他认为他们最大的错误之一是使用 build.gradle
作为默认文件名。
您可以在Gradle中找到此内容,manning