背景
首先项目是个多层级的多模块springBoot项目,每次打出来的jar包都在90M,其中包含核心代码以及所有依赖的jar包,上传到服务器速度比较慢。
由于核心代码(controller、service、dao、model)会经常改动进行发布上线,而依赖的jar包(pom文件的依赖引用)并不是经常更新,所以希望进行分离打包,改动代码只需要上线发布核心jar包(几十KB吧),提高效率。
打包方法
步骤1:清理之前的jar包
步骤2:进行重新打包
不分离打包
1、pom文件配置
TC_NLP_Platform
org.springframework.boot
spring-boot-maven-plugin
2、 箭头指向的就是完整的可运行的jar包,根据项目的不同大小不同,整体来说还是很大的。
分离打包
1、pom文件配置,由于项目是多模块的(分层的),所以打包的时候希望TCSP_Management(controller层)、TCSP_DAO、TCSP_Model、TCSP_Service可以合在一起打成一个核心jar包,其他的依赖打包到另外一个地方,达到核心代码与依赖分离打包的目的。
部分配置解释
a、
将不经常改动的依赖包,打包到lib文件夹下
b、
目的是排除TCSP_Management(controller层)、TCSP_DAO、TCSP_Model、TCSP_Service,核心的业务包,不打包到lib文件夹下面
TC_NLP_Platform
org.springframework.boot
spring-boot-maven-plugin
true
ZIP
TCSP_Model
com.toycloud.tcspeech
TCSP_DAO
com.toycloud.tcspeech
TCSP_Service
com.toycloud.tcspeech
repackage
org.apache.maven.plugins
maven-dependency-plugin
copy-dependencies
package
copy-dependencies
${project.build.directory}/lib
false
false
true
TCSP_Model,TCSP_DAO,TCSP_Service
2、 下图中,1表示的就是所有依赖打包后所在的路径,2表示核心代码所在的路径。
核心代码解压后,包含TCSP_DAO、TCSP_Model、TCSP_Service三个核心模块的jar包
发布到服务器运行:
java -Dloader.path=./lib -Duser.timezone=Asia/Shanghai -jar TC_NLP_Platform.jar
注意:lib文件夹(依赖的jar包)必须和TC_NLP_Platform.jar(核心jar包)在同级目录
Original: https://www.cnblogs.com/zdd-java/p/15811646.html
Author: 达兔哥
Title: 【转】SpringBoot多模块打包瘦身分离
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/576110/
转载文章受原作者版权保护。转载请注明原作者出处!