首页 文章

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

提问于
浏览
5

我在manage dependency definitions and versions的多模块Kotlin项目中使用 buildSrc 模块 . 该模块使用kotlin-dsl,如build.gradle.kts所示:

plugins {
    `kotlin-dsl`
}

替代声明:

plugins {
    id("org.gradle.kotlin.kotlin-dsl") version "0.16.2"
}

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

plugins {
    `kotlin-dsl`
    kotlin("jvm") version "1.2.31"
}

然而,这会导致构建错误,讨论here

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

只有 define once 整个项目中使用的Kotlin版本的简便方法是什么?

相关

2 回答

  • 2

    我知道的唯一方法是将它放入gradle.properties(或任何其他配置)并在settings.gradle.kts pluginManagement 中读取它 . 像这样:

    pluginManagement {
        repositories {
            gradlePluginPortal()
        }
        resolutionStrategy {
            eachPlugin {
                if (requested.id.id.startsWith("org.jetbrains.kotlin")) {
                    useVersion(gradle.rootProject.extra["kotlin.version"] as String)
                }
            }
        }
    }
    
  • 0

    错误不言而喻:如果您已在 buildscript 块中指定了插件,则无法在 plugins 文件夹中指定插件的版本 .

    您可以将 kotlinVersion 放入gradle.properties并将符号链接 buildSrc/gradle.propeties 放入 ./gradle.properties

相关问题