Spring Boot 打包 jar 分离 lib 和 resources 方法实例 在 Spring Boot 项目中,打包 jar 文件是一个非常重要的步骤。传统的 jar 包中,所有文件都打包到一个 jar 包中,这样会使得 jar 文件非常臃肿,在进行服务更新部署时非常不便,而且传输不稳定时导致传输失败。为了解决这个问题,需要将 lib 和 resources 分离出来,以便于更方便地更新和维护。 为什么要配置、依赖文件分离? ------------------------- 为什么需要将 lib 和 resources 分离出来?主要有两个原因: 1. 传统的 jar 包中,所有文件都打包到一个 jar 包中,这样会使得 jar 文件非常臃肿,在进行服务更新部署时非常不便。 2. 如果需要修改一些配置文件,如 properties、xml、静态文件等,可以直接在服务器上编辑,而不需要重新编译整个项目。 插件介绍 ---------- 在 Spring Boot 项目中,需要使用一些插件来实现打包 jar 文件的分离。下面是几个常用的插件: 1. maven-jar-plugin:这个插件是专门用来打包用的,可以配置需要打包进去的文件,程序的入口类等。 2. maven-resources-plugin:这个插件是用来拷贝资源文件的。 3. maven-dependency-plugin:这个插件是用来拷贝依赖库的。 4. maven-assembly-plugin:这个插件可以说包含了以上插件的功能,但是可以做到更精细的控制。 5. spring-boot-maven-plugin:这个插件是 Spring Boot 项目最重要的插件,整个项目的打包处理过程还是要依附于它。 如何实行配置、依赖文件分离? ----------------------------- 要实行配置、依赖文件分离,需要在 pom 文件中配置相应的插件。下面是一个简单的示例: ```xml <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.3</version> <configuration> <archive> <manifest> <!--是否添加依赖--> <addClasspath>true</addClasspath> <!--设置启动类--> <mainClass>xxx.xxx.Main</mainClass> </manifest> </archive> <!--设置生成jar输出位置--> <outputDirectory>${project.build.directory}</outputDirectory> </configuration> </plugin> ``` 这个插件可以将 lib 和 resources 分离出来,但是依赖的 jar 并不会打进来。为了解决这个问题,需要使用 maven-assembly-plugin 插件。 ```xml <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <!--不添加AssemblyId--> <appendAssemblyId>false</appendAssemblyId> <descriptorRefs> <!--配置打包的时候一并打包依赖jar--> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <!--入口类--> <mainClass>xxx.xxx.Main</mainClass> </manifest> </archive> </configuration> <executions> <execution> <id>make-assembly</id> <!--绑定生命周期--> <phase>package</phase> <goals> <!--执行assembly --> <goal>assembly</goal> </goals> </execution> </executions> </plugin> ``` 这个插件可以将依赖的 jar 打包进来,并且可以将 lib 和 resources 分离出来。 结论 ---------- 在 Spring Boot 项目中,打包 jar 文件的分离是一个非常重要的步骤。通过使用不同的插件,可以将 lib 和 resources 分离出来,以便于更方便地更新和维护。

























- 粉丝: 3
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 电气自动化技术专业教学团队推荐表.doc
- 2023年公共关系学网络终考题库2.doc
- 移动通信技术的发展.doc
- 计算机网络技术专业培养计划.doc
- 商业计划书(上海润金软件有限公司交易助理项目).doc
- 医学统计学第十六章--Logistic回归分析.ppt
- 基于PLC的自动摆饼机控制系统的设计及实现(顾小强).ppt
- 粤教版网络技术应用教材与教学研讨市公开课一等奖百校联赛特等奖课件.pptx
- 互联网金融个体网络借贷资金存管业务规范.docx
- 解读云计算与云数据存储发展趋势技术研究.doc
- 综合布线建设方案.doc
- 基于C51单片机的数字时钟课程设计C语言,带闹钟.doc
- 谭浩强C语言第13章.ppt
- 大学生网络利用调查报告.doc
- 2023年学员做试卷中小学教师融合教育知识网络竞赛.docx
- 互联网项目商业计划书模板.doc


