Search code examples
gradlegradle-plugingradle-kotlin-dsl

Declare Gradle buildSrc plugin using Kotlin DSL


I'm trying to figure out how to convert this configuration to the Kotlin DSL, but I can't find much in the way of examples:

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

What would this declaration look like using Kotlin?


Solution

  • It is documented in the guide: https://docs.gradle.org/current/userguide/java_gradle_plugin.html#sec:gradle_plugin_dev_usage

    The way you have also works. Any of the following would also work:

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

    The former uses Gradle's lazy configuration.