作为Gradle和Groovy的新手,我发现自己很难理解build.gradle脚本的语法。
我了解(至少我是这样认为的)build.gradle是用作DSL的普通代码,在其他地方定义了关键字。
请解释一下不同的部分。摘自教程:
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)中使用它而不使用引号?
那么到底是什么:'defaultTasks','task','release','<<','gradle','whenReady','->'?
奖励:有一种怪异的方式来发现自己吗?
最佳答案
通常,您无需理会。这是一种DSL,其中“功能任务的参数”之类的术语不应该困扰您。您应该知道添加新任务是task taskName
。
如果您真的想挖掘(例如用于扩展Gradle,实现插件等),Gradle DSL docs是您的 friend 。从那里,您可以了解到 task
is a method on Project
object。
关于groovy - Gradle/Groovy语法和关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22806093/