【发布时间】:2015-02-19 11:26:09
【问题描述】:
我是 Gradle 和 Groovy 的新手,并试图了解定义 gradle 任务时在 groovy 级别发生的情况。
task hello {
println "configuring task hello"
doLast {
println "hello there"
}
}
通过阅读“Gradle In Action”一书,我知道task hello {} 确实是对groovy Project 接口的task() 方法的调用。在第 77 页上,它显示Project 接口上有 4 个称为任务的方法
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 代码?
【问题讨论】: