【发布时间】:2018-02-11 22:55:35
【问题描述】:
gradle 文档说我在 build.gradle 文件中声明任务的方式应该是
task greeting(type: GreetingTask) {
greeting = 'greetings from GreetingTask'
}
谁能用常规语法向我解释这里发生了什么?
我知道 {} 块是闭包,它可以作为参数传递给函数,但我仍然不明白这里发生了什么
【问题讨论】:
gradle 文档说我在 build.gradle 文件中声明任务的方式应该是
task greeting(type: GreetingTask) {
greeting = 'greetings from GreetingTask'
}
谁能用常规语法向我解释这里发生了什么?
我知道 {} 块是闭包,它可以作为参数传递给函数,但我仍然不明白这里发生了什么
【问题讨论】:
task 关键字是 gradle 特定的东西。它不是标准的 groovy,而是 gradle 使用 AST 转换添加的东西,以使 DSL 更简单。基本上相当于
project.tasks.create([name: 'greeting', type: GreetingTask]) { ... }
见https://discuss.gradle.org/t/how-to-translate-task-keyword-in-dsl-into-groovy-call/7243
【讨论】: