背景
SpringBoot 项目的部署一般采用全量jar 包方式部署相关项目,如果我们对相关的Contrller\Service\Dao\Mapper 层进行相关业务调整就需要重新编译全量jar 包(包大小约为200M左右)实在太麻烦了。
本文:重点讲解使用SpringBoot 的增量/瘦身部署方式,把引用的jar 和静态资源分离。
分离Jar包
SpringBoot 全量jar 大小截图
点击SpringBoot 项目的Maven ->package 打包指令。
?SpringBoot 增量/瘦身jar 大小截图
点击SpringBoot 项目的Maven ->package 打包指令。
如何使用maven-dependency-plugin分离jar包?
第一步:在SpringBoot 项目中pom.xml文件的plugins 标签下添加plugin 依赖。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<!--指定的依赖路径-->
<outputDirectory>
${project.build.directory}/lib
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
第二步:修改SpringBoot 项目默认:spring-boot-maven-plugin插件,添加如下配置。
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
<!--必须为ZIP模式,不指定的话-Dloader.path不生效-->
<layout>ZIP</layout>
<!-- 打包的时候排除的jar包-->
<includes>
<include>
<groupId>non-exists</groupId>
<artifactId>non-exists</artifactId>
</include>
</includes>
</configuration>
</plugin>
分离配置文件
在lib同目录下创建resource文件夹,进入代码resource文件夹内复制application.yml文件到resource文件下。
SpringBoot 项目启动?
在Spring Boot 可执行jar 包所在的文件目录打开窗口,执行如下指令:
E:\github_workspace\SpringBootCase\SpringBoot-MyBatisPlus\target>java -Dloader.path=./lib -jar .\SpringBoot-MyBatisPlus-1.0-SNAPSHOT.jar
?CMD 窗口输出:
如果涉及Spring Boot 项目涉及application.yml 文件但又不涉及后端逻辑代码的修改,可以通知指定配置文件方式,启动Spring Boot项目,执行如下指令:
java -Dloader.path=./lib -Dspring.config.location=./resource/application.yml -jar .\SpringBoot-MyBatisPlus-1.0-SNAPSHOT.jar
CMD 窗口输出: