如何在build.gradle脚本中调用DependencyHandler.add

如何在build.gradle脚本中调用DependencyHandler.add,gradle,groovy,Gradle,Groovy,因此build.gradle文件基本上是一个Groovy闭包,它的委托是一个项目对象,它有一些方法,比如依赖项和存储库,我们向它们传递额外的闭包。这句话怎么会是这样的: dependencies{ testCompile 'junit:junit:4.12' } 触发DependencyHandler.add​(String configurationName,Object dependencyNotation)调用?这是Groovy的一些特殊功能吗?下面是评论部分,我在这里介绍了Groo

因此build.gradle文件基本上是一个Groovy闭包,它的委托是一个项目对象,它有一些方法,比如依赖项和存储库,我们向它们传递额外的闭包。这句话怎么会是这样的:

dependencies{
  testCompile 'junit:junit:4.12'
}

触发DependencyHandler.add​(String configurationName,Object dependencyNotation)调用?这是Groovy的一些特殊功能吗?

下面是评论部分,我在这里介绍了Groovy脚本中的一些常见“魔力”

在Gradle的早期版本中,他们用来截获丢失的方法。看看最近的资料,我相信他们现在正在使用Groovy的一些动态类特性来实现类似的行为

如果你想追踪Gradle资料中的魔法,你应该看看


请更清楚地了解您的问题。请看我试图在一个渐变中在引擎盖下运行大多数“魔法”的地方script@lance-java所以在上面的代码中,如果我理解正确,闭包应该有一个委托,它是DependencyHandler类型的对象,因此testCompile应该是该对象上的一个方法,然而,在DependencyHandler的文档中,到目前为止,我没有看到一个名为testCompile或testImplementation的方法是正确的。在文档中找不到“testCompile”方法,因为它是由DependencyHandler实现上的“methodMissing”处理程序处理的。这将最终使用方法名(“在本例中为testCompile”)向名为“testCompile”的
配置添加依赖项