Maven在传统Spring项目中支持多环境打包

简介: Maven在传统Spring项目中支持多环境打包

本文以单体架构为例,技术体系采用单纯Spring框架(未结合SpringBoot下回分解),在开发环境中支持多环境打包配置。常见环境有:开发、测试、与测试、生产等。本文采用Maven打包插件maven-resources-plugin为例详细说明如何配置及打包。

Maven等相关知识不是本文重点,如需要深入了解,欢迎自行谷歌或度娘。

一、常见配置目录分类如下:

image.png

通过以目录的形式约定配置文件的存放地址,如dev下存放开发环境相关数据库地址,用户名密码,redis的相关地址,Mq等中间件的地址等。

二、在pom.xml中定义相关环境标识

<profiles><profile><id>dev</id><activation><activeByDefault>true</activeByDefault></activation><properties><package.environment>dev</package.environment></properties></profile><profile><id>test</id><properties><package.environment>test</package.environment></properties></profile><profile><id>prod</id><properties><package.environment>prod</package.environment></properties></profile></profiles>

说明,activeByDefault表示默认使用开发环境。

三、插件配置

<build><finalName>${project.artifactId}</finalName><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include><include>**/*.xls</include><include>**/*.xlsx</include><include>**/*.bpmn</include></includes></resource><resource><directory>src/main/resources</directory><filtering>true</filtering><includes><include>**/*.properties</include><include>**/*.xml</include><include>**/*.xsd</include></includes><excludes><exclude>dev/*</exclude><exclude>test/*</exclude><exclude>prod/*</exclude></excludes></resource></resources><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>${java.version}</source><target>${java.version}</target><encoding>${project.build.sourceEncoding}</encoding></configuration></plugin><!-- 不同环境的配置文件选择 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>2.6</version><executions><execution><id>copy-resources</id><phase>compile</phase><goals><goal>copy-resources</goal></goals><configuration><!-- 覆盖原有文件 --><overwrite>true</overwrite><outputDirectory>${project.build.outputDirectory}</outputDirectory><!-- 也可以用下面这样的方式(指定相对url的方式指定outputDirectory) <outputDirectory>target/classes</outputDirectory> --><!-- 待处理的资源定义 --><resources><resource><!-- 指定resources插件处理哪个目录下的资源文件 --><directory>src/main/resources/${package.environment}</directory><filtering>false</filtering></resource></resources></configuration></execution></executions></plugin></plugins></build>

以上是Maven多环境打包配置详情。原理是采用maven的打包命令,通过打包插件去自动加载指定环境的配置文件,即可实现项目的多环境支持。结合Jenkins可进行多环境推送发布。

四、打包

mvn clean package -Pdev
mvn clean package -Ptest

通过执行maven的package打包命令,-P指定环境,即可实现预期目的。

以上就是在传统java开发模式中,如何使用maven进行多环境支持。希望还在查找相关资料的朋友有所收获。避免人工打包的原始方式,欢迎各位朋友交流讨论项目工程研发最佳实践,共同提高效率。

目录
相关文章
|
16天前
|
Java Maven
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
72 8
|
13天前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
25 2
|
14天前
|
Java 应用服务中间件 Maven
Maven的三种项目打包方式——pom,jar,war的区别
Maven 提供了多种打包方式,分别适用于不同类型的项目。pom 用于父项目或聚合项目,便于项目的结构和依赖管理;jar 用于Java类库或可执行的Java应用程序;war 则专用于Java Web应用程序的部署。理解这些打包方式的用途和特点,可以帮助开发者更好地配置和管理Maven项目,确保构建和部署过程的顺利进行。无论是单模块项目还是多模块项目,选择合适的打包方式对于项目的成功至关重要。
38 3
|
1月前
|
设计模式 前端开发 Java
Spring MVC——项目创建和建立请求连接
MVC是一种软件架构设计模式,将应用分为模型、视图和控制器三部分。Spring MVC是基于MVC模式的Web框架,通过`@RequestMapping`等注解实现URL路由映射,支持GET和POST请求,并可传递参数。创建Spring MVC项目与Spring Boot类似,使用`@RestController`注解标记控制器类。
37 1
Spring MVC——项目创建和建立请求连接
|
1月前
|
Java 关系型数据库 MySQL
Maven——创建 Spring Boot项目
Maven 是一个项目管理工具,通过配置 `pom.xml` 文件自动获取所需的 jar 包,简化了项目的构建和管理过程。其核心功能包括项目构建和依赖管理,支持创建、编译、测试、打包和发布项目。Maven 仓库分为本地仓库和远程仓库,远程仓库包括中央仓库、私服和其他公共库。此外,文档还介绍了如何创建第一个 SpringBoot 项目并实现简单的 HTTP 请求响应。
129 1
Maven——创建 Spring Boot项目
|
1月前
|
Java 关系型数据库 MySQL
如何使用 maven 创建一个 Spring Boot项目
Maven 是一个强大的项目管理工具,通过配置 `pom.xml` 文件自动获取所需的 jar 包,提高开发效率。其核心功能包括项目构建和依赖管理。项目构建支持编译、测试、打包和发布等流程,而依赖管理则通过中央仓库、本地仓库和私有服务器获取和管理项目依赖。示例中展示了如何创建第一个 SpringBoot 项目并实现简单接口。
28 1
如何使用 maven 创建一个 Spring Boot项目
|
29天前
|
缓存 IDE Java
idea的maven项目打包时没有source下的文件
【10月更文挑战第21天】idea的maven项目打包时没有source下的文件
42 1
|
30天前
|
Java API Apache
除了 Maven,还有哪些工具可以管理项目的依赖和版本冲突
除了Maven,常用的项目依赖管理和版本冲突解决工具有Gradle、Ivy、Ant+Ivy、SBT等。这些工具各有特点,适用于不同的开发环境和需求。
|
1月前
|
Java Apache Maven
Java/Spring项目的包开头为什么是com?
本文介绍了 Maven 项目的初始结构,并详细解释了 Java 包命名惯例中的域名反转规则。通过域名反转(如 `com.example`),可以确保包名的唯一性,避免命名冲突,提高代码的可读性和逻辑分层。文章还讨论了域名反转的好处,包括避免命名冲突、全球唯一性、提高代码可读性和逻辑分层。最后,作者提出了一个关于包名的问题,引发读者思考。
Java/Spring项目的包开头为什么是com?
|
3月前
|
Java Maven
解决idea每次新建maven项目都需要重新配置maven的问题
解决idea每次新建maven项目都需要重新配置maven的问题
168 1

推荐镜像

更多
下一篇
无影云桌面