SpringBoot 增量/瘦身部署jar 包

背景

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 窗口输出:

相关推荐
brevity_souls3 小时前
Spring Boot 内置工具类
java·spring boot
luoluoal3 小时前
基于Spring Boot+Vue的宠物服务管理系统(源码+文档)
vue.js·spring boot·宠物
小钊(求职中)3 小时前
Java开发实习面试笔试题(含答案)
java·开发语言·spring boot·spring·面试·tomcat·maven
Asthenia04125 小时前
如何在项目中集成GC日志输出与高效分析?一篇开发者必读的实践指南
后端
毕业设计-016 小时前
0081.基于springboot+uni-app的垃圾分类小程序+论文
spring boot·小程序·uni-app
码界筑梦坊6 小时前
基于Flask的第七次人口普查数据分析系统的设计与实现
后端·python·信息可视化·flask·毕业设计
小猫猫猫◍˃ᵕ˂◍6 小时前
rabbitmq五种模式的实现——springboot
spring boot·rabbitmq·java-rabbitmq
CodeMonkey陈7 小时前
springboot使用webSocket
spring boot·python·websocket