2017-09-03 57 views
0

gradle这个文档说,我在我的build.gradle文件中声明任务的方法应该是gradle这个任务定义语法

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

任何人可以向我解释这里发生的事情在常规语法方面? 我知道{}块是封闭,它可以作为一个参数的函数传递,但我还是不明白这里发生了什么

+0

[了解常规语法在gradle这个任务定义]的可能的复制(https://stackoverflow.com/questions/27584463/understanding-the-groovy-syntax -in-a-gradle-task-definition) – tkruse

回答

2

task关键字是gradle这个特定的东西。这不是标准的groovy,而是通过使用AST转换的gradle添加的,以使DSL更简单。它基本上相当于

project.tasks.create([name: 'greeting', type: GreetingTask]) { ... } 

https://discuss.gradle.org/t/how-to-translate-task-keyword-in-dsl-into-groovy-call/7243

+0

闭包在函数调用之后是什么意思?@JB Nizet – Ilia

+2

这是标准的groovy语法。这相当于将封闭作为最后一个参数。 –