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

Spring Boot Gradle项目指定BouncyCastle传递依赖版本失败求助

问题分析与解决方案

原因

你的问题出在Spring Cloud依赖管理的优先级高于Spring Boot的版本属性。从依赖链路能看到,spring-security-rsa:1.0.11.RELEASE被spring-cloud-dependencies:2021.0.4锁定版本,该版本的spring-security-rsa硬依赖bcpkix-jdk15on:1.69,你通过ext['bouncycastle.version']设置的版本被Spring Cloud的BOM(物料清单)覆盖了。

解决方案

方案1:强制锁定BouncyCastle版本

在项目的build.gradle中,通过dependencyManagement直接指定BouncyCastle相关依赖的版本,优先级高于所有传递依赖的版本:

dependencyManagement {
    dependencies {
        // 同时更新核心包和pkix包,避免版本不一致
        dependency 'org.bouncycastle:bcprov-jdk15on:1.72'
        dependency 'org.bouncycastle:bcpkix-jdk15on:1.72'
    }
}

方案2:升级Spring Cloud版本

Spring Boot 2.7.5对应的兼容Spring Cloud版本是2021.0.x(代号Jubilee),升级到2021.0.5及以上版本,其内置的spring-security-rsa版本会升级到1.0.12.RELEASE及以上,该版本默认依赖bcpkix-jdk15on:1.72,无需手动指定版本。修改Spring Cloud的版本:

ext {
    set('spring-cloud.version', '2021.0.5')
}

dependencyManagement {
    imports {
        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
    }
}

验证

执行以下命令确认版本是否生效:

gradlew dependencyInsight --dependency bcpkix-jdk15on --configuration compileClasspath

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:20:31