【发布时间】:2017-09-20 09:29:16
【问题描述】:
我对 Groovy 非常感兴趣,但最近才开始使用它,也想从语言语法 POV 中理解 Gradle。
我的例子是关于 Gradle 任务的:
task hello(type: GreetingTask)
class GreetingTask extends DefaultTask {
@TaskAction
def greet() {
println 'hello from GreetingTask'
}
}
task 方法接受一个字符串名称和一个闭包。 hello(type: GreetingTask)怎么会突然变成字符串?如果type 是一个命名参数,那么GreetingTask 是什么意思?它是GreetingTask.class 的快捷方式吗? hello 函数/闭包怎么会返回一个字符串?
【问题讨论】:
-
Gradle 构建脚本是一种 DSL,而不仅仅是纯粹的 groovy
-
是的,但它似乎符合 groovy 语法。除了我所问的,到目前为止,从常规语法 POV 来看,其他一切都是有意义的。
-
我不知道还能说什么... Gradle 构建脚本是 DSL,而不仅仅是纯粹的 groovy...
-
hello 可以解释为 String 由于使用了编译器插件 gradle。请参阅stackoverflow.com/questions/12326264中的答案