试图理解最简单的Gradle插件

试图理解最简单的Gradle插件,gradle,groovy,gradle-plugin,Gradle,Groovy,Gradle Plugin,作为Gradle和Groovy的新手,我很难理解在教程中遇到的以下代码: class GreetingPlugin implements Plugin<Project> { void apply(Project project) { project.task('hello') { doLast { println 'Hello from the GreetingPlugin' }

作为Gradle和Groovy的新手,我很难理解在教程中遇到的以下代码:

class GreetingPlugin implements Plugin<Project> {
    void apply(Project project) {
        project.task('hello') {
            doLast {
                println 'Hello from the GreetingPlugin'
            }
        }
    }
}
class GreetingPlugin实现插件{
无效申请(项目){
project.task('hello'){
多拉斯特{
打印“欢迎插件中的您好”
}
}
}
}
  • 什么是
    project.task('hello'){…}
    ?它看起来像一个没有返回类型的方法声明,或者像一个带有附加括号的方法调用。。。这是什么构造
  • 什么是
    doLast{…}
    它起源于哪里?那到底是什么语法模式。。。一些关键字后跟括号。我在页面中找不到类似的内容,其中大部分都有使用
    ${}
    或使用括号定义类或方法的示例

  • 在groovy中,如果方法的最后一个参数是闭包,则可以将其放在圆括号之外

    乙二醇

    相当于

    project.task('foo') {
        doStuff()
    }
    
    下面是这两种方法的javadocs链接


  • 在groovy中,如果方法的最后一个参数是闭包,则可以将其放在圆括号之外

    乙二醇

    相当于

    project.task('foo') {
        doStuff()
    }
    
    下面是这两种方法的javadocs链接


  • 如果它只需要一个闭包,你可以去掉括号,因此
    doLast{//stuff}
    doLast({//stuff})
    一样,如果它只需要一个闭包,你可以去掉括号,因此
    doLast{//stuff}
    doLast({//stuff})一样