如何在Groovy类中访问build.gradle中定义的额外属性?
我正在build.gradle中定义一个额外属性:如何在Groovy类中访问build.gradle中定义的额外属性?,gradle,groovy,properties,Gradle,Groovy,Properties,我正在build.gradle中定义一个额外属性: ext { GRGIT_TARGET_REPO = ... } 我在buildSrc/src/main/groovy下有一个groovy类 class Utils { def test() { println GRGIT_TARGET_REPO } } 我有另一个gradle文件,可以访问GRGIT\u TARGET\u REPO。但是如果它调用类中的函数: Utils utils = new Utils() ut
ext {
GRGIT_TARGET_REPO = ...
}
我在buildSrc/src/main/groovy下有一个groovy类
class Utils {
def test() {
println GRGIT_TARGET_REPO
}
}
我有另一个gradle文件,可以访问GRGIT\u TARGET\u REPO。但是如果它调用类中的函数:
Utils utils = new Utils()
utils.test()
调用上述函数时,出现以下错误:
类:Utils没有这样的属性:GRGIT\u TARGET\u REPO
有没有办法访问Groovy类中的project/extra属性?我相信您需要将gradle
project
对象发送到您的Utils类中,以实现所需的功能。换言之:
class Utils {
def project
def test() {
println(project.ext.GRGIT_TARGET_REPO)
}
}
及
在build.gradle文件中
每个gradle构建文件都有一个作为其委托的,这意味着您可以直接从构建文件代码调用中的所有方法。这里的示例是上面的project
access调用project对象上的方法
对于额外属性,在上面的groovy/javadoc中有一个项目对象的“额外属性”部分
def utils = new Utils(project: project)
utils.test()