一、问题背景
Spring Boot 项目部署起来虽然已经简单很多了,但是一个运行 jar 包动辄几十上百兆,如果服务器是本地或者在内网还好,如果需要在公网环境部署,每次发布部署时都重新上传 Spring Boot 的 jar 包,因为网速的限制,也挺令人头大的。
二、解构 Spring Boot 的 jar 包
如果我们使用工具打开 Spring Boot 项目编译出来的 jar 文件,会发现占用磁盘空间的主要是外部依赖包,位于 jar 包内的 BOOT-INF/lib 路径下。
大多数情况对服务进行重新部署的时候,外部依赖库基本上都是不变的,所以这部分的上传是费时的重复操作。我们可以避免这部分不必要的重复。
三、解决办法
将外部依赖库从 Spring Boot 的 jar 包中分离出来,将外部依赖库单独上传服务器,以后每次更新部署的时候只需要上传瘦身后的 jar 文件,从此上传就是爽快的秒操作。
- 第一步:修改 Spring Boot 项目的 pom.xml 的插件配置如下,编译出不包含外部依赖库的 jar 包:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>