[英]Gradle / Groovy Syntax and keywords
作為Gradle和Groovy的新手,我發現自己很難理解build.gradle腳本的語法。
我理解(至少我認為是這樣)build.gradle是用作DSL的普通groovy代碼,其中關鍵字在別處定義。
請解釋一下不同的部分。 摘自教程:
defaultTasks 'distribution'
task distribution << {
println "We build the zip with version=$version"
}
task release(dependsOn: 'distribution') << {
println 'We release now'
}
gradle.taskGraph.whenReady {taskGraph ->
if (taskGraph.hasTask(release)) {
version = '1.0'
} else {
version = '1.0-SNAPSHOT'
}
}
我想我知道println是一個功能。 我知道引號中的文字是一個字符串。 我想花括號中的東西是封閉的。 但什么是發布 / *發行*? 它也是一個字符串嗎? 它是函數任務的參數嗎? 為什么我可以在hasTask(release)中使用它而不帶引號?
那么exacly 是什么:'defaultTasks','task','release','<<','gradle','whenReady',' - >'?
額外獎勵:有沒有一種常規方法可以找到自己?
一般來說,你應該不在乎。 它是一個DSL,其中諸如“函數任務的參數”之類的術語不應該打擾你。 您應該知道的是添加新任務是task taskName
。
如果你真的想深入研究(例如擴展Gradle,實現插件等), Gradle DSL文檔就是你的朋友。 從那里,您可以了解該task
是Project
對象的方法 。
但什么是發布/ 發布 ? 它也是一個字符串嗎? 它是函數任務的參數嗎? 為什么我可以在hasTask(release)中使用它而不帶引號?
這些是Gradle中的Strings,但不是vanilla Groovy。 這個回復中提到了這一點
究竟是什么:'defaultTasks','task','<<','gradle','whenReady',' - >'?
這些主要是方法或領域。 領域:
方法:
->
是閉包的核心groovy語法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.