Maven assembly多模块多环境(dev|test|prod)定制化打包SpringBoot项目详解
目录
单模块场景
项目全景图
pom.xml
resources配置
maven-jar-plugin配置
maven-assembly-plugin配置
profiles配置
assembly.xml
打包
多模块场景
单模块场景
这种方式适用于SpringBoot项目中仅有一个模块的场景。
需求:
1、启停可执行jar包的shell脚本单独打包到某个目录下,例如bin目录;
2、项目resources下的配置从jar包分离出来,单独打包到某个目录下,例如config目录;
3、项目的所有依赖jar包单独打到某个目录下,例如lib目录。
打包完成后,可直接执行bin目录下的启停shell脚本运行程序。
项目全景图
项目整体结构如图:
pom.xml
build结构如图:
org.apache.maven.plugins maven-jar-plugin 马赛克DevopsBrainYmlAutomationApplication true lib *.* org.apache.maven.plugins maven-assembly-plugin package single assembly/assembly.xml target dev dev true test test prod prod
maven-jar-plugin配置
org.apache.maven.plugins maven-jar-plugin 马斯克拉ainYmlAutomationApplication true lib
它配置了jar包启动的主类(程序入口),以及外部依赖的classpath目录。
maven-assembly-plugin配置
org.apache.maven.plugins maven-assembly-plugin package single assembly/assembly.xml target
它主要指定assembly.xml文件完成定制化配置,包括shell脚本、配置文件等。
profiles配置
指定打包环境,比如开发环境、测试环境、演示环境和生产环境。配置好后,idea maven打包中会出现配置的环境,打包的时候,选择一个环境即可。如图:
assembly.xml
${package.environment} dir zip false /lib ${project.groupId}:* / ${project.groupId}:${project.artifactId} src/main/resources true application.yml logback-spring.xml whiteList.properties application-${package.environment}.yml /config bin/${package.environment} true *.* /bin 0755
pom.xml
org.apache.maven.plugins maven-jar-plugin true lib *.* org.springframework.boot spring-boot-maven-plugin 2.1.3.RELEASE 马赛克nManagerApplication 马赛克 马赛克-service 马赛克 马赛克-dao 马赛克 马赛克-bean repackage org.apache.maven.plugins maven-assembly-plugin make-assembly package single assembly/assembly.xml target dev dev true test test demo demo prod prod
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。