gradle - 试图了解最简单的Gradle插件

标签 gradle groovy 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') {...}?它看起来像是没有返回类型的方法声明,或者像是带有附加括号的方法调用……这是什么构造?
  • 什么是doLast {...},它源自何处?无论如何,这是什么语法模式?一些关键字后跟方括号。我在Groovy syntax页面中找不到类似的内容,该页面大多数包含使用${}或使用方括号定义类或方法的示例。
  • 最佳答案

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

    例如

    project.task('foo', {
        doStuff()
    })
    

    等于
    project.task('foo') {
        doStuff()
    }
    

    这是这两种方法的javadocs链接
  • Project.task(String, Closure)
  • Task.doLast(Closure)
  • 关于gradle - 试图了解最简单的Gradle插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46788175/

    相关文章:

    java - 如何从Gradle传递文件路径到Java类?

    unit-testing - Groovy,如何模拟接口(interface)保持其他方法

    java - 如何使用具有实现依赖项的Gradle创建可执行文件胖子

    android-studio - 如何通过Android Studio项目同步自定义编译参数?

    Gradle 7 任务 ':distTar' 是重复的,但没有设置重复的处理策略

    java - 如何从基于 gradle 的项目中检索 Sonar 项目属性

    class - 使用 Jenkins 共享库作为类

    java - Gradle + AspectJ日志跟踪尝试在 “instrumentation”期间失败并重新编译项目

    java - Jersy/Jetty 服务器未找到 MessageBodyWriter 错误

    jenkins - 使用pipeline-utility-steps时如何保持pom文件的注释和格式不变