因此,build.gradle 文件基本上是一个 Groovy 闭包,其委托是一个 Project 对象,并且它具有诸如依赖项和存储库之类的方法,我们可以向其传递其他闭包。怎么会出现这样的声明:
\n\ndependencies{\n testCompile 'junit:junit:4.12'\n}\nRun Code Online (Sandbox Code Playgroud)\n\n触发 DependencyHandler.add\xe2\x80\x8b(String configurationName, Object dependencyNotation) 调用?这是 Groovy 的一些特殊功能吗?
\n在评论部分中,我建议对 Groovy 脚本中的一些常见“魔法”进行解释
在 Gradle 的早期版本中,他们使用methodMissing来拦截丢失的方法。查看最近的来源,我相信他们现在正在使用 Groovy 的一些动态类功能来实现类似的行为。
如果你想追溯 Gradle 源代码中的魔力,你应该看看
| 归档时间: |
|
| 查看次数: |
1357 次 |
| 最近记录: |