You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Kotlin Gradle插件选择最新稳定版本?

解决Gradle中Kotlin插件与依赖的稳定版本筛选问题

你当前的配置仅对项目依赖生效,但Kotlin插件的版本解析属于构建脚本类路径的独立流程,不受项目依赖的resolutionStrategy管控;同时Kotlin插件版本会与BOM版本联动,当插件拉取到非稳定的Beta版本后,BOM会同步指向该版本,但你的项目依赖规则又拒绝了非稳定版本,最终导致依赖解析失败。

以下是更优的解决方案:

1. 给构建脚本类路径添加稳定版本筛选规则

在buildscript块中配置与项目依赖一致的版本筛选逻辑,让插件版本解析时自动拒绝非稳定版本:

buildscript {
    def isNonStable = { String version ->
        def stableKeyword = ['RELEASE', 'FINAL', 'GA'].any { version.toUpperCase().contains(it) }
        def regex = /^[0-9,.v-]+(-r)?$/
        return !stableKeyword && !(version ==~ regex)
    }

    repositories {
        mavenCentral()
        // 其他你需要的仓库
    }

    configurations.all {
        resolutionStrategy {
            componentSelection {
                all {
                    if (isNonStable(it.candidate.version)) {
                        reject('拒绝非稳定版本')
                    }
                }
            }
        }
    }
}

2. 统一Kotlin插件与BOM的版本约束

用变量统一管理版本范围,确保插件和BOM使用相同的版本规则,避免版本不匹配:

// 统一版本范围约束
def kotlinVersionRange = '[1.7.21, )'

plugins {
    id 'org.jetbrains.kotlin.jvm' version kotlinVersionRange
}

dependencies {
    // 对齐所有Kotlin组件版本
    implementation platform("org.jetbrains.kotlin:kotlin-bom:$kotlinVersionRange")
    // Kotlin JDK8标准库
    implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'
}

3. 搭配gradle-versions-plugin管控插件版本

如果使用gradle-versions-plugin,可在插件配置中添加规则,让插件版本检查时自动排除非稳定版:

versions {
    plugins {
        rejectIf {
            isNonStable(it.candidate.version)
        }
    }
}

这样配置后,无论是项目依赖还是Kotlin插件,都会自动筛选1.7.21及以上的最新稳定版本,既避免了手动指定旧版本的模糊逻辑,也从根源上解决了插件与依赖版本不匹配的问题。

内容的提问来源于stack exchange,提问作者brabster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 11:31:04