欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 文化 > Maven多环境打包方法配置

Maven多环境打包方法配置

2025/3/16 23:36:14 来源:https://blog.csdn.net/gzt19881123/article/details/145282211  浏览:    关键词:Maven多环境打包方法配置

简单记录一下SpringBoot多环境打包配置方法,分部署环境和是否包含lib依赖包两个维度

目录

  • 一、需求说明
  • 二、目录结构
  • 三、配置方案
  • 四、验证示例

一、需求说明

  • 基于Spring Boot框架的项目
  • 分开发,测试,生产等编译部署环境(每一个环境只包含本环境对应的配置文件)
  • 可以包含或者去除lib依赖包( 依赖分离方式部署,节约jar文件上传服务器时间 )
  • Maven 方式单体工程打包 ( 适合中小业务快速部署 )

二、目录结构

按照不同的编译环境,分多个配置文件,目录结构如下图所示:
在这里插入图片描述

三、配置方案

在 工程目录下的 pom.xml 文件中配置打包相关( <build> ... </build>) 的内容:

       <!-- 默认编译配置项 --><build><finalName>${project.name}</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin><plugin><artifactId>maven-compiler-plugin</artifactId></plugin><plugin><artifactId>maven-source-plugin</artifactId></plugin></plugins></build><!-- nolib 表示剔除lib包下面的所有maven依赖项目 --><profiles><profile><id>nolib</id><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><layout>ZIP</layout><includes><include><groupId>nothing</groupId><artifactId>nothing</artifactId></include></includes></configuration></plugin></plugins></build></profile><!-- 默认环境配置,包含所有 --><profile><id>default</id><activation><activeByDefault>true</activeByDefault></activation></profile><!-- 通用动态环境配置 --><profile><id>dyn-env</id><properties><!-- 设置 env 的默认值为 dev,可被外部 -Denv 覆盖 --><env>dev</env></properties><build><resources><!-- 默认配置 --><resource><directory>src/main/resources</directory><!-- 排除其他环境的配置文件,若 Profile 未激活时默认包含 application.yml --><excludes><exclude>application-*.yml</exclude><exclude>db-*.setting</exclude><exclude>redisson/redisson-config-*.yml</exclude></excludes></resource><resource><directory>src/main/resources</directory><includes><!-- 动态匹配当前环境的配置文件 --><include>application-${env}.yml</include><include>db-${env}.setting</include><include>redisson/redisson-config-${env}.yml</include></includes></resource></resources></build></profile></profiles>

上面 默认编译配置项下的 maven-compiler-pluginmaven-source-plugin 插件是可选项。

nolib环境 表示剔除lib包下所有maven依赖项(这样打包出来的jar 只有几M大小,甚至只有几百KB)

四、验证示例

  • 示例1:使用prod环境打包且不包含lib依赖库
mvn clean package -Pdyn-env,nolib -Denv=prod
  • 示例2:使用prod环境打包且包含lib依赖库:默认包含lib依赖库
mvn clean package -Pdyn-env -Denv=prod
  • 示例3:使用默认环境打包且包含lib依赖库:默认包含lib依赖库 且默认application.yml中指定环境
mvn clean package
  • 示例4:使用默认环境打包且不包含lib依赖库:不包含lib依赖库 且默认application.yml中指定环境
mvn clean package -Pnolib 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词