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

在Maven pom文件中如何排除bcprov-jdk15on依赖中除JcaJceHelper外的所有类?

Maven 仅引入 bcprov-jdk15on 1.47 中的 JcaJceHelper 类配置方案

首先得明确:Maven的<excludes>标签是用来排除传递依赖的(也就是该依赖带进来的其他第三方jar),没法直接过滤bcprov-jdk15on自身jar包里的类。要只保留JcaJceHelper类,有两种可行方案:

方案一:用Maven Shade插件裁剪Jar包

Shade插件可以在打包时只保留你需要的类,剔除其他无关类。在项目的pom.xml里添加如下配置:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>3.2.4</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <artifactSet>
                            <includes>
                                <include>org.bouncycastle:bcprov-jdk15on:1.47</include>
                            </includes>
                        </artifactSet>
                        <filters>
                            <filter>
                                <artifact>org.bouncycastle:bcprov-jdk15on:1.47</artifact>
                                <includes>
                                    <!-- 只保留JcaJceHelper类,注意包路径要准确 -->
                                    <include>org/bouncycastle/jce/provider/JcaJceHelper.class</include>
                                    <!-- 注意:如果JcaJceHelper依赖其他类,也要把这些依赖类加进来,不然运行会报ClassNotFound -->
                                    <!-- 比如它可能依赖org.bouncycastle.jce.provider.JCEHelper,根据实际情况补充 -->
                                </includes>
                            </filter>
                        </filters>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

执行mvn package后,生成的jar包就只会包含你指定的类和它们的依赖类(如果补充了的话)。

方案二:手动提取类并打包小Jar

  1. 下载bcprov-jdk15on-1.47.jar,用解压工具打开
  2. 找到org/bouncycastle/jce/provider/JcaJceHelper.class,以及它依赖的所有相关类(可通过IDE依赖分析或运行时报错确认)
  3. 把这些class文件按原包路径整理好,用jar命令打成新的小jar
  4. 在pom.xml里把这个小jar作为本地依赖引入:
<dependency>
    <groupId>org.bouncycastle</groupId>
    <artifactId>bcprov-jdk15on-minimal</artifactId>
    <version>1.47</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/bcprov-jdk15on-minimal-1.47.jar</systemPath>
</dependency>

这种方式适合临时场景,工程化推荐用方案一。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 08:13:18