我发现了一个名为 Gradle 插件,可以帮我处理带有点号的属性名称。当在单个项目中使用时,它可以像下面这样运行:
apply plugin: 'config'
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.esyfur:gradle-config-plugin:0.4.+'
}
}
task printProps() {
println(config.grafana.url)
}
然而,我希望在多个项目(多模块)中使用此插件,并且理想情况下不希望在每个项目中重复初始化,而是通过某种方式进行注入,以便更易于管理。
我未能找到如何做或是否可以完成。例如,我尝试在父build.gradle中使用以下内容:
allprojects {
apply plugin: 'config'
}
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.esyfur:gradle-config-plugin:0.4.+'
}
}
但是它不起作用。Gradle抱怨在任务上找不到属性“config”。
更新
在Peter的评论后,我开始探索并从头创建一个示例项目,并逐步将其靠近我的“真实项目”。我在描述我的设置时并不完全准确。在settings.gradle中,我使用
rootProject.children.each { project ->
project.buildFileName = "${project.name}.gradle"
}
造成这个问题的原因是两个不同的构建脚本。当切换回build.gradle名称时,一切正常。