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

启用Strictly规则后Gradle仍降级mssql-jdbc版本的问题

问题

使用Gradle 8.6版本,在build.gradle中配置如下内容:

compileJava {
        targetCompatibility = '21'
        sourceCompatibility = '21'
}
dependencies {
  implementation "com.microsoft.sqlserver:mssql-jdbc:12.6.1.jre11"
}

执行gradle dependencies命令后,发现mssql-jdbc版本被降级至10.2.3.jre8:

+--- com.microsoft.sqlserver:mssql-jdbc:12.6.1.jre11 -> 10.2.3.jre8

确认无其他依赖引入mssql-jdbc,即使启用Strictly版本约束:

implementation("com.microsoft.sqlserver:mssql-jdbc") {
        version {
            strictly "$sqlServerConnectorVersion"
        }
}

版本仍被降级至10.2.3.jre8:

+--- com.microsoft.sqlserver:mssql-jdbc:{strictly 12.6.1.jre11} -> 10.2.3.jre8

解决方案

此问题属于项目特定场景问题,实际是某子项目虽无需依赖mssql-jdbc,但却引发了版本降级,将该子项目中的相关影响排除后即可解决问题。

根本原因

Gradle的依赖解析机制中,多模块项目存在冲突的依赖需求时,可能出现版本意外降级的情况。通常是因为某个子项目引入了更低版本的依赖,或是通过间接方式触发了Gradle的版本冲突解决策略,导致优先选择了更低版本。类似场景的深层逻辑可参考关于Gradle降级传递依赖的相关技术讨论。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 14:46:03