2017-09-03 56 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語法。這相當於將封閉作爲最後一個參數。 –