Plugins and `apply from` in the Kotlin DSL

There still is some ceremony to use precompiled script plugins. Agreed that the project-with-buildSrc sample should be enhanced to demonstrate this. The precompiled-script-plugins do demonstrate their use but in a “binary plugin” context instead of for local build logic. We’ll look into that.

In the meantime here are some instructions for using precompiled script plugins in buildSrc:

#1 add to your buildSrc/build.gradle.kts:

plugins {
    `java-gradle-plugin`
    `kotlin-dsl`
    `kotlin-dsl-precompiled-script-plugins`
}

dependencies {
    // the dependencies used by your precompiled script plugins
}

#2 create a precompiled script at buildSrc/src/main/kotlin/my-plugin.gradle.kts

plugins { // Can use the plugins block but dependencies must be declared, see above
    java
    id("some-other-plugin")
}

// Custom build logic

#3 in your build scripts, you can then apply the my-plugin plugin, e.g. in sub-project/build.gradle.kts:

plugins {
    id("my-plugin")
}

All build scripts can see classes from plugin coming from buildSrc.

The gradle/kotlin-dsl build make use of those precompiled scripts: https://github.com/gradle/kotlin-dsl/tree/develop/buildSrc/src/main/kotlin/plugins

HTH