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

相关推荐
蝎子莱莱爱打怪24 分钟前
GitLab CI/CD + Docker Registry + K8s 部署完整实战指南
后端·docker·kubernetes
哈密瓜的眉毛美41 分钟前
零基础学Java|第三篇:DOS 命令、转义字符、注释与代码规范
后端
用户60572374873081 小时前
AI 编码助手的规范驱动开发 - OpenSpec 初探
前端·后端·程序员
哈密瓜的眉毛美1 小时前
零基础学Java|第二篇:Java 核心机制与第一个程序:从 JVM 到 Hello World
后端
用户8307196840821 小时前
RabbitMQ vs RocketMQ 事务大对决:一个在“裸奔”,一个在“开挂”?
后端·rabbitmq·rocketmq
初次攀爬者1 小时前
RocketMQ 集群介绍
后端·消息队列·rocketmq
初次攀爬者1 小时前
RocketMQ在Spring Boot上的基础使用
java·spring boot·rocketmq
Leo8992 小时前
go 从零单排 之 一小时通关
后端
花花无缺2 小时前
搞懂@Autowired 与@Resuorce
java·spring boot·后端
CodeMonkey2 小时前
记一次傻逼一样的 OOM 异常
后端