如何在Groovy类中访问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

我正在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()
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()