本文主要是介绍Spring Boot应用部署 - JAR包部署瘦身,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
瘦身部署方案
说明
在日常开发测试环境中,随着业务代码的增加,Maven依赖的jar包也越来越多,导致工程包越来越大。通过阿里云流水线部署时,构建时长逐渐变得不够使用。为了解决这个问题,我们提出了以下瘦身部署方案。
执行
2.1 工程打包jar文件,解压取出非工程依赖的jar(BOOT-INF/lib)
在构建过程中,首先将工程打包为jar文件,然后解压该jar文件,取出其中的非工程依赖的jar包(通常位于BOOT-INF/lib
目录下)。
2.2 修改工程pom.xml
修改前
<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.3.2.RELEASE</version>
</plugin>
修改后
<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.3.2.RELEASE</version><configuration><mainClass>xxx.xxx.Application</mainClass><layout>ZIP</layout><includes><!-- 内部依赖 --><include><groupId>xxx</groupId><artifactId>xxx</artifactId></include><include><groupId>xxx</groupId><artifactId>xxx</artifactId></include><!-- 其他内部依赖... --></includes></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions>
</plugin>
注意:在<includes>
标签中,需要列出所有需要包含在最终jar包中的内部依赖。每次新增Maven依赖时,需要手动更新这个列表。
2.3 部署脚本,增加参数【Dloader.path】
在部署脚本中,需要为Java命令添加-Dloader.path
参数,指定非工程依赖jar包的目录。
nohup java -Xms2g -Xmx2g -server -XX:+HeapDumpOnOutOfMemoryError -Dspring.profiles.active=xxx -Dloader.path=${APP_HOME}/lib -jar ${JAR_NAME} > ${JAVA_OUT} 2>&1 &
在这个命令中,${APP_HOME}/lib
是非工程依赖jar包的目录,${JAR_NAME}
是瘦身后的工程jar包的名称。${JAVA_OUT}
是Java输出日志的文件名。
这篇关于Spring Boot应用部署 - JAR包部署瘦身的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!