我遇到gradle plugin来帮助我处理虚线属性名称。在这样使用时,它在单个项目中工作正常:
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'在任务上。
在彼得的评论之后,我开始思考并从头开始创建一个示例项目,并逐步使其更接近我的真实项目'。我在描述我的设置时并不完全准确。在settings.gradle中,我使用
rootProject.children.each { project ->
project.buildFileName = "${project.name}.gradle"
}
导致此问题。一切正常当切换回build.gradle名称时。
答案 0 :(得分:0)
问题是您的settings.gradle
没有配置rootProject.buildFileName
以匹配用于构建脚本的非标准文件名。因此,构建脚本不会被评估,其buildscript
块永远不会生效。