一、背景

SpringBoot 为我们快速开发提供了很好的架子,使得我们只需要少量配置就能开始我们的开发工作,但是当我们需要打包上传部署时,却是很神伤的一个问题,因为打出来的 Jar 包少则十几兆,多则一百来兆,我们需要上传至公网服务器时,是非常慢的,这就引出了今天的主题,SpringBoot项目Jar包如何瘦身部署

1、思路

  • 分析 jar,我们可以看出,jar 包里面分为以下三个模块

    分为 BOOT-INF,META-INF,org 三个部分,打开 BOOT-INF

    可以看到有 classes,lib 两个文件夹,我们编译好的代码是放在 classes 里面的,而我们所依赖的 jar 包都是放在 lib 文件夹下
  • classes 部分是非常小的(我的是3M左右),lib部分是非常大的(我的是70M左右),所以上传很慢
  • 那我们可以将我们自己写的代码部分与所依赖的 maven jar 包部分拆开上传,每次只需要上传我们自己写的代码部分即可

二、瘦身部署

1、正常打包

首先,我们项目的 pom.xml 文件中的打包方式如下:</

【SpringBoot】32、SpringBoot项目Jar包如何瘦身部署相关推荐

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

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

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

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

  3. 快夸我!我把SpringBoot项目从18.18M瘦身到0.18M!

    作者:yjgithub 来源:http://39sd.cn/EF359 目录: 1.前言 2.瘦身前的Jar包 3.解决方案 一.前言 SpringBoot部署起来虽然简单,如果服务器部署在公司内网, ...

  4. IDEA把Springboot打成可执行jar包,内嵌tomcat 这个可以用

    IDEA把Springboot打成可执行jar包,内嵌tomcat 2018年11月23日 18:36:30 ta山之石可以攻玉 阅读数 3061 版权声明:本文为博主原创文章,未经博主允许不得转载. ...

  5. springboot基于mybatis扫描jar包中的controller、service、dao、xml

    springboot基于mybatis扫描jar包中的controller.service.dao.xml 最近有这样的需求,是将某个业务模块接口,比如新闻的接口模块 作为一个公共固定的模块,整个包括 ...

  6. maven springboot 除去指定的jar包_SpringBoot的运行机制

    SpringBoot打包机制 先看一眼spring-boot的maven插件打包后的target目录: 其中有一个.jar.original的文件,一个.jar文件,其中.jar.original才是 ...

  7. springboot解决第三方依赖jar包的问题

    springboot解决第三方依赖jar包的问题 参考文章: (1)springboot解决第三方依赖jar包的问题 (2)https://www.cnblogs.com/xiaosiyuan/p/6 ...

  8. 阿里云 部署SpringBoot和Vue项目 亲测可用(第一次部署经验贴)

    阿里云 部署SpringBoot和Vue项目 亲测可用!第一次部署经验贴! 前言:与伙伴一起写了一个项目,但是由于老师要我们部署到服务器上,而我从未有部署过,查看了csdn很多博客,试了好多篇,才成功 ...

  9. spring boot jar包_「Spring Boot 新特性」 jar 大小自动瘦身

    自动分析瘦身 Spring Boot 项目最终构建处理 JAR 包大小一直是个诟病,需要把所有依赖包内置最终输出可运行的 jar.当然可以使用其他的插件扩展 实现依赖 JAR 和 可运行 jar 分离 ...

最新文章

  1. linux 文件操作 编程,Linux系统编程------------文件操作(基础)
  2. Form学习入门系列(一)
  3. 在qt中用c语言数组,在QT函数中返回一个数组/把一个数组传参给函数
  4. 用Gson实现json与对象、list集合之间的相互转化
  5. 阿里云视频云 Retina 多媒体 AI 体验馆开张啦!
  6. VC INI文件读写 和 GetProfileString,WriteProfileString函数的使用
  7. FFmpeg中MPEG-4编码程序追踪,其他FFMPEG自带编码器同理
  8. cordova 人脸识别_html5与EmguCV前后端实现——人脸识别篇(一)
  9. Ubuntu下pycharm无法输入中文
  10. linux下多线程的创建与等待详解 【转载】
  11. Atitit 验证码功能修复总结文档原有的tp5里面的验证码不知怎么有问题了,试图在tp5框架内修复无果。。使用了新的验证码组件 “lifei6671/php-captcha“: “0.
  12. 【发表案例】JCR1区计算机测量类SCI,仅3个月录用
  13. IAR (10.10.1) 安装与破解教程
  14. android上传到svn服务器端,上传Android项目到SVN
  15. hd6630m可以玩lol吗_《LOL》流畅玩!Intel HD620核显性能实测
  16. Java 使用 throw 抛出异常
  17. 8、MySQL Workbench导入数据库提示Failed to open required defaults file:xxx.cnf
  18. navicat哪个版本支持mysql8_Navicat连接MySQL8.0亲测有效
  19. 蓝光影视媒体菜单结构浅析[原版加字幕保留花絮/主菜单/弹出菜单并分割对应PS3]...
  20. 尽信书不如无书之获取枚举值代码优化

热门文章

  1. C#调用C++OpenCV直方图匹配
  2. 阿里技术人分享的三本书豆瓣评分8.5分,让你的架构思维略窥门径
  3. android的checkbox设置样式,android自定义checkBox的样式
  4. 下定决心,学好日语!
  5. C语言中常见的字符串函数
  6. 线性表(三)——线性链表(单链表)
  7. Flink Dynamic Tables
  8. 一个C语言编写的贪吃蛇小游戏(含美化)
  9. Cefsharp打开新web页面时就在原来的页面打开
  10. GPS数据格式的分析