快夸我!我把SpringBoot项目从18.18M瘦身到0.18M!
作者:yjgithub
来源:http://39sd.cn/EF359
目录:
1.前言
2.瘦身前的Jar包
3.解决方案
一、前言
SpringBoot部署起来虽然简单,如果服务器部署在公司内网,速度还行,但是如果部署在公网(阿里云等云服务器上),部署起来实在头疼:编译出来的 Jar 包很大,如果工程引入了许多开源组件(SpringCloud等),那就更大了。
这个时候如果想要对线上运行工程有一些微调,则非常痛苦
二、瘦身前的Jar包
Tomcat在部署Web工程的时候,可以进行增量更新,SpringBoot也是可以的~
SpringBoot编译出来的Jar包中,磁盘占用大的,是一些外部依赖库(jar包),例如:
进入项目工程根目录,执行 mvn clean install 命令,得到的Jar包,用压缩软件打开,目录结构如下:
整个Jar包 18.18 MB, 但是 BOOT-INF/lib 就占用了将近 18 MB:
三、解决方法
步骤1: 正常编译JAR包,解压出lib文件夹
POM文件如下:
进入项目根目录,执行命令:mvn clean install
将编译后的Jar包解压,拷贝 BOOT-INF 目录下的lib文件夹 到目标路径;
步骤2: 修改pom.xml配置,编译出不带 lib 文件夹的Jar包
配置完成后,再次执行编译:mvn clean install
生成的 Jar 包体积明显变小,如下所示, 外部的 jar 包已经不会被引入了:
步骤3: 运行编译后的Jar包
将 步骤1 解压出来的lib文件夹、步骤2编译的jar包放在同一个目录, 运行下面命令:
或者在maven中输入一下命令导出需要用到的jar包
备注:
将/path/to/改成实际的路径。
-Dloader.path=lib文件夹路径
最终目录文件结构是:
说明
1、通常,一个工程项目架构确定后,引入的jar包基本上不会变,改变的大部分是业务逻辑;
2、后面如果需要变更业务逻辑,只需要轻量地编译工程,大大提高项目部署的效率。
快夸我!我把SpringBoot项目从18.18M瘦身到0.18M!相关推荐
- 我把SpringBoot项目从18.18M瘦身到0.18M,部署起来真省事!
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:yjgithub 原文:http://suo.im/5OOW ...
- 【SpringBoot】32、SpringBoot项目Jar包如何瘦身部署
一.背景 SpringBoot 为我们快速开发提供了很好的架子,使得我们只需要少量配置就能开始我们的开发工作,但是当我们需要打包上传部署时,却是很神伤的一个问题,因为打出来的 Jar 包少则十几兆,多 ...
- SpringBoot 部署 Jar 文件,瘦身优化指南 !
以下文章来源方志朋的博客,回复"666"获面试宝典 作者 | Java基基 来源 | https://mp.weixin.qq.com/s/Y5VK7TI1TQBN6O-k5O6h ...
- SpringBoot部署Jar文件,瘦身优化指南!
作者:xautlx gitee.com/xautlx/package-optimize-demo 本文截取代码片段来自于对应的完整示例源码工程: https://gitee.com/xautlx/pa ...
- 如何优雅的给SpringBoot部署的jar包瘦身?
一.需求背景 我们知道Spring Boot项目,是可以通过java -jar 包名 启动的. 那为什么Spring Boot项目可以通过上述命令启动,而其它普通的项目却不可以呢? 原因在于我们在通过 ...
- 不错!SpringBoot发布Jar包优化瘦身指南!
概要说明 随着Spring Boot的流行,大家体验到只需构建输出一个jar文件,然后只需一个java -jar命令就能部署运行应用的爽快.常见一些单体应用随着项目规模的扩展单个jar文件的大小越来越 ...
- 使用Spring Boot Thin Launcher 打包Spring Boot项目,jar包瘦身
原文地址:https://www.jianshu.com/p/3fa4039d90d7 -------------------------------------------------------- ...
- SpringBoot快速瘦身,快速部署jar
文章目录 本片要点 正常打包部署的方式 瘦身部署 拿到lib目录 改变默认的打包方式 再次打包 上传lib和jar 源码下载 参考阅读 本片要点 介绍如何为jar包瘦身,方便部署. 正常打包部署的方式 ...
- 花30分钟,用Jenkins部署码云上的SpringBoot项目
点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:硬刚一周,3W字总结,一年的经验告诉你如何准备校招! 个人原创100W+访问量博客:点击前往,查看更多来源:ju ...
最新文章
- LaTex中编辑公式的上下角标出现的问题---允许{}的嵌套吗?
- Canonical面向Ubuntu 16.04 LTS发布首批内核安全修复补丁
- vue渲染大量数据如何优化_Vue - Table表格渲染上千数据优化
- 谈谈JDK线程的伪唤醒
- JZOJ 5353. 【NOIP2017提高A组模拟9.9】村通网
- 2018年技术上该怎样努力
- 不会吧不会吧!不会有人还有没有用CSDN的浏览器插件吧!
- 除了速度与激情 领克01带给我另一种有关生活方式的想象
- doe全称是什么意思_QA、QC、QE…都是什么意思
- 视频编解码(七):profilelevel简介、ffmpeg如何控制profilelevel、编码效率
- 数据库基础知识——互动百科
- 脚本和网络课层的联系
- ClientToScreen 和ScreenToClient用法
- 路由协议Ⅰ(RIP、OSPF、IS-IS、IGP、BGP等)
- 虚拟机桌面切换命令行
- 用这个方法1分钟能批量下载上百张图片,亲测有效速度快
- 软件开发生命周期有几个阶段?
- 擎创科技正式加入openEuler社区,共建开源生态
- 【微信小程序采坑】wx.canvasToTempFilePath生成图片第一次为全透明(白色)的问题?
- iOS程序员眼中的首次使用产品体验
热门文章
- 信息系统项目管理师-项目评估的基本方法
- Ubuntu下安装为知笔记Linux版本
- 厉害了!用 JS 实现人脑和计算机交互
- Java环境变量的配置 (Win10环境下)
- 敏捷宣言和企业Scrum作者Mike Beedle去世
- zabbix应用之短信报警
- 【Oracle 集群】Linux下Oracle RAC集群搭建之基本测试与使用(九)
- 事务之五:Spring @Transactional工作原理
- (转)iOS 各种控件默认高度(图示)
- [Step By Step]SAP HANA PAL 数据处理抽样算法Sampling实例SAMPLING