如何为buildSrc和应用程序模块定义Kotlin版本?

JJD*_*JJD 5 gradle multi-module kotlin build.gradle gradle-kotlin-dsl

buildSrc在多模块Kotlin项目中使用模块来管理依赖项定义和版本.该模块使用kotlin-dsl,如build.gradle.kts所示:

plugins {
    `kotlin-dsl`
}
Run Code Online (Sandbox Code Playgroud)

替代声明:

plugins {
    id("org.gradle.kotlin.kotlin-dsl") version "0.16.2"
}
Run Code Online (Sandbox Code Playgroud)

我想使用相同的Kotlin版本来编译buildSrc模块以及应用程序模块.我的第一个尝试是简单地添加JVM工件:

plugins {
    `kotlin-dsl`
    kotlin("jvm") version "1.2.31"
}
Run Code Online (Sandbox Code Playgroud)

然而,这会导致构建错误,这将在此处讨论:

解析插件时出错[id:'org.jetbrains.kotlin.jvm',版本:'1.2.31']
类路径上已有插件的插件请求不得包含版本

在整个项目中只使用一次 Kotlin版本定义的便捷方法是什么?

有关

JJD*_*JJD 3

每个 Gradle 版本都旨在与特定版本的插件一起使用 ,并且不保证kotlin-dsl任意 Gradle 版本和插件版本之间的兼容性。kotlin-dsl

kotlin-dsl在构建中使用意外版本的插件可能会导致难以诊断问题。

kotlin-dsl从 Gradle 5.4 开始,每当检测到意外版本的插件时,就会发出警告。

保罗·梅林 @eskatos, 25.04.2019

因此,我删除version

plugins {
    `kotlin-dsl`
}

repositories {
    mavenCentral()
}
Run Code Online (Sandbox Code Playgroud)