当前位置:  开发笔记 > 编程语言 > 正文

Gradle额外属性不存在 - 在子模块中定义

如何解决《Gradle额外属性不存在-在子模块中定义》经验,为你挑选了1个好方法。

我正在将maven build迁移到gradle,我正在努力在根项目中定义基本的插件配置.并在子模块中提供特定的配置属性.

这是一个例子:

root:build.gradle

configure(filterSubprojects(['component'])) {

    apply plugin: "org.flywaydb.flyway"

    flyway {
        url = "jdbc:oracle:thin:@${db.host}:${db.port}:${db.name}"
        user = db.owner.name
        password = db.owner.password
    }

}

specific-subproject-component:build.gradle

ext {
    db = [
            host          : ,
            port          : ,
            name          : ,
            user          : [name: , password: ]
    ]
}

我收到这个错误:

Cannot get property 'db' on extra properties extension as it does not exist

可能是非常基本的问题,但我无法弄清楚如何做到这一点.



1> Rene Groesch..:

这里的问题是,在评估root build.gradle文件时,尚未评估特定组件build.gradle文件,因此当configure块运行时db确实不存在.要解决此问题,您应该能够evaluationDependsOnChildren()在root build.gradle文件中声明.

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有