Gradle convention プラグインでプラグインのバージョンを指定する

blog1.mammb.com


buildSrc/src/main/kotlin/xx-common-conventions.gradle.kts の中でバージョンを指定してプラグインを適用した場合

plugins {
    java
    id("org.openrewrite.rewrite") version "6.29.0"
}

以下のようなエラーとなる。

Invalid plugin request [id: 'org.openrewrite.rewrite', version: '6.29.0']. Plugin requests from precompiled scripts must not include a version number. Please remove the version from the offending request and make sure the module containing the requested plugin 'org.openrewrite.rewrite' is an implementation dependency of project ':buildSrc'.


このような場合は buildSrc/src/build.gradle.kts<plugin id>:<plugin id>.gradle.plugin:<version> の形式で依存を追加する。

org.openrewrite.rewrite プラグインの場合は以下の要領。

plugins {  
    `kotlin-dsl`  
}  
repositories {  
    gradlePluginPortal()  
}  
dependencies {  
    implementation("org.openrewrite.rewrite:org.openrewrite.rewrite.gradle.plugin:6.29.0")  
}

buildSrc/src/main/kotlin/xx-common-conventions.gradle.kts 側では version を省略して以下のように定義できる。

plugins {
    java
    id("org.openrewrite.rewrite")
}