【发布时间】:2014-05-13 10:04:42
【问题描述】:
作为 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 是一个函数。我知道引号中的文本是一个字符串。我猜花括号里的东西是一个闭包。
但是release/distribution 是什么?也是一个字符串吗?它是函数task 的参数吗?还有为什么我可以在hasTask(release)中使用不带引号的呢?
那么究竟是什么:defaultTasks、task、release、<<、gradle、whenReady、->?
奖励:有没有一种非常棒的方法可以发现自己?
【问题讨论】:
-
杰亚。这是同一个问题。同样的意图。 (甚至对“字符串”也有同样的困惑)。从技术上讲,另一个是重复的,因为它比它小 8 个月。但是没关系。至少他/她得到了一个有用的答案。