使用 Kotlin DSL 声明 Gradle buildSrc 插件

Declare Gradle buildSrc plugin using Kotlin DSL

我正在尝试弄清楚如何将此配置转换为 Kotlin DSL,但我找不到太多示例:

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

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

这是我目前发现的,不确定是否有更流畅的方法:

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

指南中有记载: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的lazy configuration.