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

相关推荐
techdashen20 分钟前
Arborium:把 tree-sitter 语法高亮打包成 Rust 文档生态的基础设施
开发语言·后端·rust
Profile排查笔记35 分钟前
指纹浏览器环境异常排查:Fingerprint、Profile、Proxy、Session 和 Task Log 怎么看
前端·人工智能·后端·自动化
小强库计算机毕业设计39 分钟前
源码分享Spring Boot + Vue3 的校园社团管理系统
java·spring boot·后端·计算机毕业设计
格子软件1 小时前
2026年分布式GEO代理流量调度:源码级状态机防重挂实战
java·vue.js·人工智能·spring boot·分布式·vue
万亿少女的梦1681 小时前
基于Spring Boot的社区管理系统设计与实现
java·spring boot·mysql·vue·系统设计
阿新聊ai1 小时前
从 Prompt 到 Loop:AI 编程 Agent 四代循环的演进全景
人工智能·后端
im_lanny1 小时前
从 Function Calling 到 MCP:Agent 工具调用的三层境界与生产级安全护栏
后端
agent8971 小时前
Spring Boot 接口超时治理:从连接池、线程池到熔断限流的完整排查思路
java·spring boot·后端
Devin~Y1 小时前
抖音级短视频推荐与直播带货平台面试实战:从 Java 微服务到 RAG 智能客服全链路解析
java·spring boot·redis·spring cloud·kafka·agent·rag
放弃 治疗2 小时前
Windows 11系统 最新 Launch4j 安装与使用教程:从 JAR 到 EXE 的完整打包指南
java·jar