试图理解最简单的 Gradle 插件
Trying to understand the most simple Gradle plugin
作为 Gradle 和 Groovy 的新手,我很难理解我在 Writing a simple plugin 教程中遇到的以下代码:
class GreetingPlugin implements Plugin<Project> {
void apply(Project project) {
project.task('hello') {
doLast {
println 'Hello from the GreetingPlugin'
}
}
}
}
- 什么是
project.task('hello') {...}
?它看起来像一个没有 return 类型的方法声明,或者像一个带有额外括号的方法调用......这是什么构造?
- 什么是
doLast {...}
,它起源于哪里?无论如何,这是什么语法模式......一些关键字后跟方括号。我在 Groovy syntax 页面中找不到类似的内容,该页面主要包含使用 ${}
或使用方括号定义 class 或方法的示例。
在groovy中,如果方法的最后一个参数是闭包,可以放在圆括号外。
例如
project.task('foo', {
doStuff()
})
相当于
project.task('foo') {
doStuff()
}
这是这两种方法的 javadoc 的链接
作为 Gradle 和 Groovy 的新手,我很难理解我在 Writing a simple plugin 教程中遇到的以下代码:
class GreetingPlugin implements Plugin<Project> {
void apply(Project project) {
project.task('hello') {
doLast {
println 'Hello from the GreetingPlugin'
}
}
}
}
- 什么是
project.task('hello') {...}
?它看起来像一个没有 return 类型的方法声明,或者像一个带有额外括号的方法调用......这是什么构造? - 什么是
doLast {...}
,它起源于哪里?无论如何,这是什么语法模式......一些关键字后跟方括号。我在 Groovy syntax 页面中找不到类似的内容,该页面主要包含使用${}
或使用方括号定义 class 或方法的示例。
在groovy中,如果方法的最后一个参数是闭包,可以放在圆括号外。
例如
project.task('foo', {
doStuff()
})
相当于
project.task('foo') {
doStuff()
}
这是这两种方法的 javadoc 的链接