作者: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!相关推荐

  1. 我把SpringBoot项目从18.18M瘦身到0.18M,部署起来真省事!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:yjgithub 原文:http://suo.im/5OOW ...

  2. 【SpringBoot】32、SpringBoot项目Jar包如何瘦身部署

    一.背景 SpringBoot 为我们快速开发提供了很好的架子,使得我们只需要少量配置就能开始我们的开发工作,但是当我们需要打包上传部署时,却是很神伤的一个问题,因为打出来的 Jar 包少则十几兆,多 ...

  3. SpringBoot 部署 Jar 文件,瘦身优化指南 !

    以下文章来源方志朋的博客,回复"666"获面试宝典 作者 | Java基基 来源 | https://mp.weixin.qq.com/s/Y5VK7TI1TQBN6O-k5O6h ...

  4. SpringBoot部署Jar文件,瘦身优化指南!

    作者:xautlx gitee.com/xautlx/package-optimize-demo 本文截取代码片段来自于对应的完整示例源码工程: https://gitee.com/xautlx/pa ...

  5. 如何优雅的给SpringBoot部署的jar包瘦身?

    一.需求背景 我们知道Spring Boot项目,是可以通过java -jar 包名 启动的. 那为什么Spring Boot项目可以通过上述命令启动,而其它普通的项目却不可以呢? 原因在于我们在通过 ...

  6. 不错!SpringBoot发布Jar包优化瘦身指南!

    概要说明 随着Spring Boot的流行,大家体验到只需构建输出一个jar文件,然后只需一个java -jar命令就能部署运行应用的爽快.常见一些单体应用随着项目规模的扩展单个jar文件的大小越来越 ...

  7. 使用Spring Boot Thin Launcher 打包Spring Boot项目,jar包瘦身

    原文地址:https://www.jianshu.com/p/3fa4039d90d7 -------------------------------------------------------- ...

  8. SpringBoot快速瘦身,快速部署jar

    文章目录 本片要点 正常打包部署的方式 瘦身部署 拿到lib目录 改变默认的打包方式 再次打包 上传lib和jar 源码下载 参考阅读 本片要点 介绍如何为jar包瘦身,方便部署. 正常打包部署的方式 ...

  9. 花30分钟,用Jenkins部署码云上的SpringBoot项目

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:硬刚一周,3W字总结,一年的经验告诉你如何准备校招! 个人原创100W+访问量博客:点击前往,查看更多来源:ju ...

最新文章

  1. LaTex中编辑公式的上下角标出现的问题---允许{}的嵌套吗?
  2. Canonical面向Ubuntu 16.04 LTS发布首批内核安全修复补丁
  3. vue渲染大量数据如何优化_Vue - Table表格渲染上千数据优化
  4. 谈谈JDK线程的伪唤醒
  5. JZOJ 5353. 【NOIP2017提高A组模拟9.9】村通网
  6. 2018年技术上该怎样努力
  7. 不会吧不会吧!不会有人还有没有用CSDN的浏览器插件吧!
  8. 除了速度与激情 领克01带给我另一种有关生活方式的想象
  9. doe全称是什么意思_QA、QC、QE…都是什么意思
  10. 视频编解码(七):profilelevel简介、ffmpeg如何控制profilelevel、编码效率
  11. 数据库基础知识——互动百科
  12. 脚本和网络课层的联系
  13. ClientToScreen 和ScreenToClient用法
  14. 路由协议Ⅰ(RIP、OSPF、IS-IS、IGP、BGP等)
  15. 虚拟机桌面切换命令行
  16. 用这个方法1分钟能批量下载上百张图片,亲测有效速度快
  17. 软件开发生命周期有几个阶段?
  18. 擎创科技正式加入openEuler社区,共建开源生态
  19. 【微信小程序采坑】wx.canvasToTempFilePath生成图片第一次为全透明(白色)的问题?
  20. iOS程序员眼中的首次使用产品体验

热门文章

  1. 信息系统项目管理师-项目评估的基本方法
  2. Ubuntu下安装为知笔记Linux版本
  3. 厉害了!用 JS 实现人脑和计算机交互
  4. Java环境变量的配置 (Win10环境下)
  5. 敏捷宣言和企业Scrum作者Mike Beedle去世
  6. zabbix应用之短信报警
  7. 【Oracle 集群】Linux下Oracle RAC集群搭建之基本测试与使用(九)
  8. 事务之五:Spring @Transactional工作原理
  9. (转)iOS 各种控件默认高度(图示)
  10. [Step By Step]SAP HANA PAL 数据处理抽样算法Sampling实例SAMPLING