gradle任务定义语法

时间:2017-09-03 14:44:30

标签: gradle groovy

gradle docs说我在build.gradle文件中声明任务的方式应该是

task greeting(type: GreetingTask) {
    greeting = 'greetings from GreetingTask'
}

任何人都可以向我解释一下groovy语法会发生什么? 我知道{}块是封闭的,它可以作为参数传递给函数但我仍然没有得到这里发生的事情

1 个答案:

答案 0 :(得分:2)

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