最佳答案
我对 Gradle 和 Groovy 还是个新手,试图理解在 Groovy 层面上定义分级任务时会发生什么。
task hello {
println "configuring task hello"
doLast {
println "hello there"
}
}
通过阅读“ Gradle In Action”一书,我知道 task hello {}
实际上是对常规 Project
接口的 task()
方法的调用。在第77页,它显示了在 Project
接口上有4个称为 task 的方法
task(args: Map<String,?>, name:String)
task(args: Map<String,?>, name:String, c:Closure)
task(name: String)
task(name: String, c:Closure)
我知道 {}
是闭合体。
我不明白的是,groovy 是如何根据 https://stackoverflow.com/a/25592665/438319解释 task hello { }
中的 hello
的? 有一个 groovy 编译器插件可以将 task hello { }
转换成 task('hello', { })
我的问题:
我在哪里可以找到关于做转换的 Gradle Groovy 编译器插件的信息?
是否声称 Gradle 脚本是 Groovy 程序在技术上是不正确的,因为 Gradle 以某种方式扩展了 Groovy 编程语言?
有没有办法让 gradle
命令打印出编译器插件运行后生成的基础 groovy 代码?