「Spring Boot 新特性」 jar 大小自动瘦身

Spring Boot 2.4 引入了新的特性,可以在构建可运行的jar时自动删除empty starter dependencies,从而减小jar包的大小。通过对比2.3.6和2.4.0的jar,可以看到2.4.0的jar少了spring-boot-starter.jar。empty starter是一种不包含任何代码,仅用于批量导入其他jar的依赖。用户可以通过在MANIFEST.MF中添加Spring-Boot-Jar-Type: dependencies-starter来实现自定义jar的自动瘦身。
摘要由CSDN通过智能技术生成

自动分析瘦身

Spring Boot 项目最终构建处理 JAR 包大小一直是个诟病,需要把所有依赖包内置最终输出可运行的 jar。当然可以使用其他的插件扩展 实现依赖 JAR 和 可运行 jar 分离可以参考 slot-maven-plugin[1], 但此种方法治标不治本并不能减少原有依赖的 JAR 的大小。

Spring Boot 2.4 提供对构建输出 JAR 分析自动瘦身的功能,自动在构建输出可运行 JAR 时删除 empty starter dependencies

效果展示

先来分别基于 Spring Boot 2.4.0 和 Spring Boot 2.3.6 来构建一个可运行的 jar ,再来聊什么是 empty starter

使用 start.spring.io[2] 创建一个空的 Spring Boot 项目,注意不需要引入任何依赖

mvn clean install 构建出来相关可运行 jar


分别解压两个 jar 到两个不同的目录

tar -zxvf demo-2.3.6.jar -C demo-2.3.6/

tar -zxvf demo-2.4.0.jar -C demo-2.4.0/

统计依赖 jar 个数, 2.3.6 共计 19 个 依赖 jar 而 2.4.0 只有 18 个依赖 jar ,缺少了 spring-boot-starter.jar

cd demo-2.3.6/BOOT-INF/lib && ll -h | wc -l
19

cd demo-2.4.0/BOOT-I

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值