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

Maven项目意外引入bcprov-jdk16-1.46.jar如何排查移除

排查并移除Maven冗余传递依赖方案

步骤1:定位bcprov-jdk16-1.46.jar的引入来源

  • 命令行排查:在项目根目录执行以下命令,会直接过滤输出所有间接引入该jar包的父依赖链路
    mvn dependency:tree -Dincludes=org.bouncycastle:bcprov-jdk16
  • IDE可视化排查:IDEA用户可右键点击pom文件,选择Diagram -> Show Dependencies,搜索bcprov-jdk16即可直观看到依赖链路;Eclipse用户可通过Maven插件的Dependency Hierarchy视图搜索定位。

步骤2:移除冗余依赖

找到引入来源后,任选以下一种方案处理即可:

方案1:在对应父依赖中排除该传递依赖

修改引入该jar的父依赖配置,添加排除规则,示例如下:

<dependency>
    <groupId>此处替换为你查到的父依赖groupId</groupId>
    <artifactId>此处替换为你查到的父依赖artifactId</artifactId>
    <version>父依赖版本号</version>
    <exclusions>
        <exclusion>
            <groupId>org.bouncycastle</groupId>
            <artifactId>bcprov-jdk16</artifactId>
        </exclusion>
    </exclusions>
</dependency>

方案2:全局锁定bcprov版本

如果项目中可能多处引入不同版本的bouncycastle相关依赖,可在pom的dependencyManagement节点中统一声明你需要的版本,所有传递依赖会自动适配该版本,同时避免版本冲突:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.bouncycastle</groupId>
            <artifactId>bcprov-jdk15on</artifactId>
            <version>1.69</version>
        </dependency>
    </dependencies>
</dependencyManagement>

配置完成后重新执行mvn dependency:tree确认bcprov-jdk16已不存在于依赖树,再重新构建项目即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 12:15:02