当前位置:首页 > 开发工具 > Maven多环境配置

Maven多环境配置

2022年08月05日 23:29:28开发工具10

多数项目都会有开发环境、测试环境、生产环境,各个环境配置可能都会不一样,于是在构建时,会涉及到环境配置的切换。来回手工修改配置,效率低下,容易出错。可以配置多个含有不同环境配置的Profile,在构建时指定构建环境,达到多环境下快速灵活构建的目的。

项目结构:

Maven多环境配置 _ JavaClub全栈架构师技术笔记

config.properties:

jdbc_driver_class=${jdbc.driver.class}
jdbc_connection_url=${jdbc.connection.url}
jdbc_username=${jdbc.username}
jdbc_password=${jdbc.password}

prop下的dev.properties、test.properties、prod.properties分别对应开发、测试、生产环境的配置。

dev.properties:

jdbc.driver.class=com.mysql.jdbc.Driver
jdbc.connection.url=jdbc:mysql://localhost:3306/mydb
jdbc.username=dev_user
jdbc.password=123456

test.properties:

jdbc.driver.class=com.mysql.jdbc.Driver
jdbc.connection.url=jdbc:mysql://192.168.1.25:3306/mydb
jdbc.username=test_user
jdbc.password=123456

prod.properties:

jdbc.driver.class=com.mysql.jdbc.Driver
jdbc.connection.url=jdbc:mysql://www.nocoffee.com:3306/mydb
jdbc.username=prod_user
jdbc.password=123456

pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.coffee</groupId>
  <artifactId>coffee-xw</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  
 	<profiles>
  		<profile>
  			<id>dev</id>
  			<properties>
  				<!-- 自定义属性env,在不同环境有不同的值 -->
  				<env>dev</env>
  			</properties>
  			<activation>
  				<!-- 默认激活dev环境的配置 -->
  				<activeByDefault>true</activeByDefault>
  			</activation>
  		</profile>
  		
  		<profile>
  			<id>test</id>
  			<properties>
  				<env>test</env>
  			</properties>
  		</profile>
  		
  		<profile>
  			<id>prod</id>
  			<properties>
  				<env>prod</env>
  			</properties>
  		</profile>
  	</profiles>
  	
  	<build>
  		<!-- 指定filter,根据最终profile下的env属性获取对应的配置文件 -->
  		<filters>
  			<filter>src/main/prop/${env}.properties</filter>
  		</filters>
  		
  		<!-- 开启资源过滤,让Maven能解析资源文件中的Maven属性 -->
  		<resources>
  			<resource>
  				<directory>src/main/resources</directory>
  				<filtering>true</filtering>
  			</resource>
  		</resources>
  	</build>
</project>

构建

构建时,指定参数-P加上profile的id来激活对应的profile。也可以通过 指定默认激活的profile。
如上,显示的激活dev环境的profile,执行 mvn clean install 时,编译后的config.properties内容为:

jdbc_driver_class=com.mysql.jdbc.Driver
jdbc_connection_url=jdbc:mysql://localhost:3306/mydb
jdbc_username=dev_user
jdbc_password=123456

执行 mvn clean install -Pprod 时,编译后的config.properties内容为:

jdbc_driver_class=com.mysql.jdbc.Driver
jdbc_connection_url=jdbc:mysql://www.nocoffee.com:3306/mydb
jdbc_username=prod_user
jdbc_password=123456

作者:布禾
来源链接:https://www.cnblogs.com/seve/p/10976410.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/tool/18012.html

标签: Maven
分享给朋友:

“Maven多环境配置” 的相关文章

SpringBoot之Hello World篇,使用eclipse+maven搭建SpringBoot工程

SpringBoot之Hello World篇,使用eclipse+maven搭建SpringBoot工程

首先来了解下什么是SpringBoot 百度百科:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬...

解决项目启动报错--maven依赖冲突

解决项目启动报错--maven依赖冲突

这个问题之前出现过一次,和同事讨论了2天,解决了。后来合 了一下master的分支,问题又出现了,但是忘记了解决方法。现在记录一下免得时间长了又忘记了。 问题描述: Caused by: org.springframework.beans.factory.Unsat...

dubbo+spring_maven 遇到的问题 Error creating bean with name '***': Instantiation of bean failed;

Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cpUserAgent': Instantia...

Maven项目管理工具初体验

Maven项目管理工具初体验

  在最前面声明,本文不涉及任何原理,只是对使用方法和期间遇到的问题如何解决。主要是随着年纪原来越大,越觉得好记星不如烂笔头的深意,同时如果能够帮助谁,那就最好不过了。   前两天自己做一个项目,然后好心朋友要帮忙,但我把项目放到Git上以后出现了点问题,工程文件.project...

Maven项目中Spring整合Mybatis

Maven项目中Spring整合Mybatis

Maven项目中Spring整合Mybatis 添加jar包依赖 spring需要的jar包依赖 <dependency> <groupId>org.springframework</gr...

Maven入门【小白千万别点进】

Maven入门【小白千万别点进】

曾经有个女孩问我为什么要学Maven,我吧唧嘴就怼:Maven项目没有jar包它不香嘛,照样运行它不香嘛?如果让我一句话形容Maven,我会这样形容:“妈妈再也不用担心小明拿U盘去小红电脑里烤jar包了”,女孩听了瞬间泪崩了:”我其实也是一个中央仓库,以后缺jar包直接来找我,用不着小...

Maven学习  ---  <distributionManagement>

Maven学习 ---

  在使用maven过程中,我们在开发阶段经常性的会有很多公共库处于不稳定状态,随时需要修改并发布,可能一天就要发布一次,遇到bug时,甚至一天要发布N次。我们知道,maven的依赖管理是基于版本管理的,对于发布状态的artifact,如果版本号相同,即使我们内部的镜像服务器...

aliyun阿里云Maven仓库地址——加速你的maven构建

maven仓库用过的人都知道,国内有多么的悲催。还好有比较好用的镜像可以使用,尽快记录下来。速度提升100倍。 maven仓库用过的人都知道,国内有多么的悲催。还好有比较好用的镜像可以使用,尽快记录下来。速度提升100倍。 http://maven.aliyun...

Eclipse配置maven环境

Eclipse配置maven环境

一.什么是maven? Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System)...

maven学习(中)- 私服nexus搭建

maven学习(中)- 私服nexus搭建

详细讲解maven中如何搭建nexus私服 接上回继续,相信大家对maven每次都联网从国外站点下载依赖项的龟速网络已经不坎忍受了,今天先来看看如何搭建"仓库私服",目前nexus是使用比较广泛的私服软件之一,下面将介绍基本用法:   一、到ne...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。