解决SpringBoot jar包大小优化问题

本文介绍两种解决Maven项目依赖过多导致打包慢的方法:一是清理无用依赖,使用mvndependency:analyze命令分析并剔除未使用的依赖;二是采用外部引用方式,排除所有jar依赖,大幅缩减jar包大小。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里提供两种解决方案:

  1. 清理 Maven 依赖中无用依赖( Unused declared dependencies )。
  2. 打包时排除所有 jar 依赖改为运行时外部引用。

方案一:清理Maven依赖中无用依赖
可以使用 mvn dependency:analyze 命令对项目进行分析,并以此作为参考来剔除无用依赖。

在这里插入图片描述
下面对图中的 Used undeclared dependencies found 和 Unused declared dependencies found 作出解释

Used undeclared dependencies found
意为项目中有些我们使用到的 jar 包依赖并没有在 pom 文件中显示声明,这意味着这些包是通过引用传递 1 而来的。

这个时候我们可以选择显示声明他们。

Unused declared dependencies found
意为项目中存在显示声明的依赖我们在实际的应用中并没有使用到。我们可以将他们从 pom 文件中剔除。

注意: 这里虽然说实际代码中没有用到,但并不意味着一定没有用到,这里只是说 main/java 和 test 中没有使用到,具体剔除方案还需要自己衡量,这个结果只能作为参照。

方案二:外部引用 jar 包(立竿见影)
可有效缩减 jar 包大小,进而解决 Jar 包太大引发的打包慢,上传慢等问题。

1、将原本 jar 包解压缩找到 BOOT-INF 下的 lib 目录考出,该目录下包含所需所有 jar包。

在这里插入图片描述
2、在 pom 中 spring-boot-maven-plugin 打包插件设置打包时排除所有 jar 包

            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork>
                    <layout>ZIP</layout>
                    <includes>
                        <include>
                            <!-- 排除所有Jar -->
                            <groupId>nothing</groupId>
                            <artifactId>nothing</artifactId>
                        </include>
                    </includes>
                </configuration>
            </plugin>


此时打包,会发现 jar 包大小锐减,将 jar 包与 lib 放在同一目录下执行命令
java -Dloader.path="lib/" -jar yourjarname.jar 即可.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值