簡體   English   中英

Gradle / Groovy語法和關鍵字

[英]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文檔就是你的朋友。 從那里,您可以了解該taskProject對象的方法

但什么是發布/ 發布 它也是一個字符串嗎? 它是函數任務的參數嗎? 為什么我可以在hasTask(release)中使用它而不帶引號?

這些是Gradle中的Strings,但不是vanilla Groovy。 這個回復中提到了這一點

究竟是什么:'defaultTasks','task','<<','gradle','whenReady',' - >'?

這些主要是方法或領域。 領域:

  • project.defaultTasks
  • project.gradle

方法:

  • project.task()
  • task.whenReady()
  • task.leftShift()

->是閉包的核心groovy語法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM