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进行多环境支持。希望还在查找相关资料的朋友有所收获。避免人工打包的原始方式,欢迎各位朋友交流讨论项目工程研发最佳实践,共同提高效率。

目录
相关文章
|
1天前
|
Java Apache Maven
Maven 项目文档
本章学习创建Maven项目文档。以`consumerBanking`项目为例,在C:/MVN下用命令`mvn archetype:generate`快速搭建。需在`pom.xml`中添加或确认有maven-site-plugin和maven-project-info-reports-plugin插件配置,版本分别为3.3和2.7,避免运行`mvn site`时出现`NoClassDefFoundError`错误。
WXM
|
1天前
|
Java 应用服务中间件 Maven
|
3天前
|
Java Apache Maven
Maven 项目文档
学习创建Maven项目文档;示例:C:/MVN下的`consumerBanking`,使用`mvn archetype:generate`初始化。需更新pom.xml,加入maven-site-plugin 3.3与maven-project-info-reports-plugin 2.7,以防`mvn site`执行时的兼容性错误。
|
6天前
|
Java 持续交付 Maven
Spring Boot程序的打包与运行:构建高效部署流程
构建高效的Spring Boot部署流程对于保障应用的快速、稳定上线至关重要。通过采用上述策略,您可以确保部署过程的自动化、可靠性和高效性,从而将专注点放在开发上面。无论是通过Maven的生命周期命令进行打包,还是通过容器技术对部署过程进行优化,选择正确的工具与实践是成功实现这一目标的关键。
20 2
|
9天前
|
Java Apache Maven
Maven 项目文档
在`C:/MVN/consumerBanking`中,使用`mvn archetype:generate`命令创建`java`项目,配置`pom.xml`含`maven-site-plugin`和`maven-project-info-reports-plugin`以避免`NoClassDefFoundError`。确保`maven-site-plugin`至少为版本3.3解决依赖问题。
|
7天前
|
Java Apache Maven
Maven 项目文档
学习创建Maven项目文档,示例在`C:/MVN/consumerBanking`。使用`mvn archetype:generate`初始化,调整pom.xml以包含maven-site-plugin v3.3和maven-project-info-reports-plugin v2.7,避免`NoClassDefFoundError`错误,确保文档生成无碍。
|
15天前
|
Java Apache Maven
Maven 项目文档
确保 `pom.xml` 包含 `maven-site-plugin` 和 `maven-project-info-reports-plugin`,至少版本为 3.3 和 2.7,以避免 `NoClassDefFoundError`。升级插件解决可能的版本问题。
|
18天前
|
SQL XML Java
解决Spring Boot项目中的数据库迁移问题
解决Spring Boot项目中的数据库迁移问题
|
19天前
|
负载均衡 Java 开发者
如何在Spring Boot项目中实现微服务架构?
如何在Spring Boot项目中实现微服务架构?
|
5天前
|
Java Apache Maven
Maven 项目文档
学习创建Maven项目文档;示例:C:/MVN下的`consumerBanking`项目,使用`mvn archetype:generate`初始化。需更新pom.xml以包含`maven-site-plugin`3.3与`maven-project-info-reports-plugin`2.7,解决`NoClassDefFoundError`错误。

推荐镜像

更多