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

如何使用Gradle从Spring Boot Fat Jar中排除指定依赖库

从Spring Boot可执行Fat Jar排除指定Jar包

要排除你指定的Jar包,有两种实用方式,可根据你的依赖类型选择:

方式一:调整依赖Scope(推荐)

将需要排除的依赖的Scope改为providedRuntime,Gradle会在编译、测试阶段保留这些依赖,但不会把它们打包进最终的Fat Jar。

修改dependencies块如下:

dependencies {
    // 其他原有依赖保持不变...

    // 修改BouncyCastle依赖的Scope
    providedRuntime 'org.bouncycastle:bcprov-jdk18on:1.73'
    providedRuntime 'org.bouncycastle:bcpkix-jdk18on:1.73'
    providedRuntime 'org.bouncycastle:bcutil-jdk18on:1.73'

    // 修改本地Prosys SDK Jar的Scope
    providedRuntime files('lib/prosys-opc-ua-sdk-evaluation-4.10.6-24.jar')

    // 其他本地Jar保持不变...
}

方式二:配置bootJar任务排除规则

如果不想修改依赖Scope,可直接在bootJar任务中指定要排除的文件或模块:

在build.gradle末尾添加以下配置:

bootJar {
    // 排除BouncyCastle的三个模块
    exclude group: 'org.bouncycastle', module: 'bcprov-jdk18on'
    exclude group: 'org.bouncycastle', module: 'bcpkix-jdk18on'
    exclude group: 'org.bouncycastle', module: 'bcutil-jdk18on'

    // 排除本地的Prosys SDK Jar
    exclude 'prosys-opc-ua-sdk-evaluation-4.10.6-24.jar'
}

验证排除效果

执行./gradlew bootJar打包后,可通过以下命令检查Fat Jar内是否已排除指定文件:

unzip -l build/libs/your-application-name-0.0.1-SNAPSHOT.jar | grep -E "(bcprov|bcpkix|bcutil|prosys-opc-ua)"

若没有输出,说明排除成功。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 09:28:17