当前位置: 首页 > 知识库问答 >
问题:

使用Kotlin DSL声明Gradle buildSrc插件

权韬
2023-03-14

我试图弄清楚如何将此配置转换为静态编程语言DSL,但在示例中找不到太多:

gradlePlugin {
    plugins {
        javaConventionsPlugin {
            id = "build.java-conventions"
            implementationClass = "buildlogic.plugins.JavaConventionsPlugin"
        }
    }
}

如果使用Kotlin,这个声明会是什么样子?

共有2个答案

汪阿苏
2023-03-14

这是我到目前为止发现的,不确定是否有更流畅的方式:

gradlePlugin {
    val javaConventionsPlugion = plugins.register("javaConventionsPlugin")
    javaConventionsPlugion.configure {
        id = "build.java-conventions"
        implementationClass = "buildlogic.plugins.JavaConventionsPlugin"
    }
}
谢典
2023-03-14

指南中记录了这一点:https://docs.gradle.org/current/userguide/java_gradle_plugin.html#sec:gradle_plugin_dev_usage

你的方式也很有效。以下任何一项也将起作用:

gradlePlugin {
    plugins {
        register("javaConventionsPlugin") {
            id = "build.java-conventions"
            implementationClass = "buildlogic.plugins.JavaConventionsPlugin"
        }
    }
}

gradlePlugin {
    plugins {
        create("javaConventionsPlugin") {
            id = "build.java-conventions"
            implementationClass = "buildlogic.plugins.JavaConventionsPlugin"
        }
    }
}

前者用的是Gradle的懒人配置。

 类似资料:
  • 我已经克隆了sbteclipse,我正在阅读scala-sbt教程,上面说: 我在/home/mil目录中,而sbteclipse在同一个目录中。sbteclipse内部是带有plugins.sbt的项目目录

  • 问题内容: 我想在两个小数点后两位之间使用断言,我使用这个: 但是JUnit日志显示: 问题答案: 测试两个对象是相同的对象,即它们是: 断言两个对象引用相同的对象。如果它们不相同,则会抛出一个没有消息的消息。 在您的情况下,由于和都是new ,所以对象不相同,因此是例外。 您要使用,测试两个对象是否相等,即: 断言两个对象相等。如果不是,则会抛出一个不带消息的消息。如果期望和实际相等,则认为它们

  • 问题内容: 何时使用语句而不是准备语句。我想在没有参数的查询中使用语句,但是为什么不使用预处理语句呢?对于没有参数的查询,哪一个更快。 问题答案: 我想在没有参数的查询中使用语句,但是为什么不使用预处理语句呢? 还差得远 对于返回结果集或更新计数的INSERT,UPDATE和DELETE语句,使用PreparedStatement。正如Joachim所指出的,它们不适用于DDL语句,也不适用于应使

  • 本文向大家介绍如何使用JSP声明来声明类的对象?,包括了如何使用JSP声明来声明类的对象?的使用技巧和注意事项,需要的朋友参考一下 声明声明了一个或多个变量或方法,您可以稍后在JSP文件中的Java代码中使用它们。在JSP文件中使用变量或方法之前,必须先声明该变量或方法。 以下是JSP声明的语法- 您可以编写与上述语法等效的XML,如下所示- 以下是JSP声明中对象声明的示例-

  • 我以前从未使用过JPQL,我需要用它来批量更新特定列中的值。该列存在于表中,但实体类是在没有变量的情况下设置的。我不能使用确切的数据,但设置会像这样给你一个想法: 数据库列 JPA 实体类 在 Books 实体类中,有一个 getter 和 这两个问题都是b.作者提出的。authorId和b.author是无效的标识符。是否可以编写两个单独的查询?1个查询作为select语句,我可以使用连接,然后

  • cc.Class 是一个很常用的 API,用于声明 Cocos Creator 中的类,为了方便区分,我们把使用 cc.Class 声明的类叫做 CCClass。 定义 CCClass 调用 cc.Class,传入一个原型对象,在原型对象中以键值对的形式设定所需的类型参数,就能创建出所需要的类。 var Sprite = cc.Class({ name: "sprite" }); 以上代