【SpringBoot框架篇】21.对springboot框架编译后的jar文件瘦身

文章目录

  • 1.为什么要瘦身
  • 2.应用实战
    • 2.1.pom使用的依赖
    • 2.2.打包
    • 2.3.复制这些jar到项目根路径的release/lib目录下
    • 2.4.配置打包时忽略依赖
    • 2.5.启动jar的时候需要指定LOADER_PATH加载依赖jar
  • 3.项目配套代码

1.为什么要瘦身

通常 Spring Boot 程序在构建的时候会把依赖的jar包也到打包在内部,导致文件大小动辄 50M、100M 这样子,如今迭代发布时常有的事情,每次都上传一个如此庞大的文件,会浪费很多时间,瘦身后会把依赖的jar文件放到jar包外部目录,只需要首次发布的时候需要上传全量文件,后面更新只需要更新源代码编译的jar即可。

2.应用实战

2.1.pom使用的依赖

方便测试只添加了一个web依赖

   
    org.springframework.boot
    spring-boot-starter-web
  

2.2.打包

执行 mvn clean package 打包应用

应用打包后的相关依赖的jar会被放入jar包内的BOOT-INF/lib目录下,使用WinRAR可以进入jar包内部,或者直接解压jar包
【SpringBoot框架篇】21.对springboot框架编译后的jar文件瘦身_第1张图片

2.3.复制这些jar到项目根路径的release/lib目录下

如下图
【SpringBoot框架篇】21.对springboot框架编译后的jar文件瘦身_第2张图片

2.4.配置打包时忽略依赖

在spring-boot-maven-plugin插件中通过includes标签配置忽略依赖包,需要在configuration.mainClass里面指定应用的启动类,如下。
【SpringBoot框架篇】21.对springboot框架编译后的jar文件瘦身_第3张图片

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
    			
                    com.ljm.webdemo.WebdemoApplication
                    ZIP
                    
                        
                            nothing
                            nothing
                        
                    
                
            
        
    

使用mvn clean package打包,可以看到改造前大小为16.5M,改造后大小为113KB了。
在这里插入图片描述

2.5.启动jar的时候需要指定LOADER_PATH加载依赖jar

java -Dloader.path=lib -jar webdemo.jar

【SpringBoot框架篇】21.对springboot框架编译后的jar文件瘦身_第4张图片

只针对springboot版本必须在2.3以上,如果不是,请升级。

3.项目配套代码

gitee代码地址

创作不易,要是觉得我写的对你有点帮助的话,麻烦在gitee上帮我点下 Star

【SpringBoot框架篇】其它文章如下,后续会继续更新。

  • 1.搭建第一个springboot项目
  • 2.Thymeleaf模板引擎实战
  • 3.优化代码,让代码更简洁高效
  • 4.集成jta-atomikos实现分布式事务
  • 5.分布式锁的实现方式
  • 6.docker部署,并挂载配置文件到宿主机上面
  • 7.项目发布到生产环境
  • 8.搭建自己的spring-boot-starter
  • 9.dubbo入门实战
  • 10.API接口限流实战
  • 11.Spring Data Jpa实战
  • 12.使用druid的monitor工具查看sql执行性能
  • 13.使用springboot admin对springboot应用进行监控
  • 14.mybatis-plus实战
  • 15.使用shiro对web应用进行权限认证
  • 16.security整合jwt实现对前后端分离的项目进行权限认证
  • 17.使用swagger2生成RESTful风格的接口文档
  • 18.使用Netty加websocket实现在线聊天功能
  • 19.使用spring-session加redis来实现session共享
  • 20.自定义@Configuration配置类启用开关
  • 21.对springboot框架编译后的jar文件瘦身
  • 22.集成RocketMQ实现消息发布和订阅
  • 23.集成smart-doc插件零侵入自动生成RESTful格式API文档
  • 24.集成FastDFS实现文件的分布式存储
  • 25.集成Minio实现文件的私有化对象存储
  • 26.集成spring-boot-starter-validation对接口参数校验
  • 27.集成mail实现邮件推送带网页样式的消息
  • 28.使用JdbcTemplate操作数据库
  • 29.Jpa+vue实现单模型的低代码平台
  • 30.使用sharding-jdbc实现读写分离和分库分表
  • 31.基于分布式锁或xxx-job实现分布式任务调度
  • 32.基于注解+redis实现表单防重复提交
  • 33.优雅集成i18n实现国际化信息返回
  • 34.使用Spring Retry完成任务的重试

你可能感兴趣的:(springBoot,java,spring,boot,jar)