使用maven profile指定配置文件打包适用多环境的方法

所属分类: 软件编程 / java 阅读数: 29
收藏 0 赞 0 分享

开发过程, 我们习惯把数据源配置, 项目常量, 日志配置等基础数据配置写到一个个单独的的文件中. 如jdbc.properties等各种.格式的文件.

如何不频繁修改配置文件, 随时打包不同基础数据配置信息的项目.

1.新建maven项目,   在pom.xml中添加 profile节点信息如下:

<profiles>
		<profile>
			<!-- 开发环境 -->
			<id>dev</id>
			<properties>
				<environment>development</environment><!-- 节点名字environment是自己随意取的 -->
			</properties>
			<activation>
				<activeByDefault>true</activeByDefault><!-- 默认激活该profile节点-->
			</activation>
		</profile>
		<profile>
			<!-- 测试环境 -->
			<id>test</id>
			<properties>
				<environment>test</environment>
			</properties>
		</profile>
		<profile>
			<!-- 预演环境 -->
			<id>prev</id>
			<properties>
				<environment>preview</environment>
			</properties>
		</profile>
		<profile>
			<!-- 生产环境 -->
			<id>prod</id>
			<properties>
				<environment>production</environment>
			</properties>
		</profile>
</profiles>

 2. 在项目中添加各环境需要的数据源配置文件,分不同目录存放, 分别是开发,测试, 预演,生产  环境. 如下图左边部分所示.  


3. pom.xml中配置resource节点信息.

<build>			
		<resources>
			<resource>
				<directory>src/main/resources</directory>
				<excludes>
					<exclude>environment/development/*</exclude> 
					<exclude>environment/test/*</exclude> 
					<exclude>environment/preview/*</exclude> 
        	        <exclude>environment/production/**</exclude>
				</excludes>
			</resource>
			<resource>
				<directory>src/main/resources/environment/${environment}</directory>
				<targetPath>environment/${environment}</targetPath>
			</resource>
		</resources>
	</build>

resource节点信息解释: 

<directory>src/main/resources</directory> <!--打包时包含src/main/resources目录下所有"子"文件 和 "孙"文件.如config 和environment -->
<exclude>environment/development/**</exclude> <!--打包时排除src/main/resources/environment/development下所有"子"文件 和 "孙"文件.-->
<exclude>environment/test/**</exclude> <!--打包时排除src/main/resources/environment/test下所有"子"文件 和 "孙"文件.-->
<exclude>environment/preview/**</exclude> <!--打包时排除src/main/resources/environment/preview下所有"子"文件 和 "孙"文件.-->
<exclude>environment/production/**</exclude><!--打包时排除src/main/resources/environment/production下所有"子"文件 和 "孙"文件.-->
<!-- 注意点: 如果写一个心号*, 如<exclude>environment/development/*</exclude> 则表示:打包时排除src/main/resources/environment/development下所有"子"文件, 不排除"孙"文件, 如上一个截图所示.-->
<!-- 以上配置优先度从上到下 递增, 这就达到目的: config目录下的配置各环境都需要, 而其它环境相关的配置只会有一个目录被打包--->
<directory>src/main/resources/environment/${environment}</directory> <!-- 打包时包含src/main/resources/environment/${environment}下所有"子"文件,environment变量值来自profile中赋值 -->
<targetPath>environment/${environment}</targetPath><!--指定src/main/resources/environment/${environment}所有"子文件" 打包 到包的哪个目录 -->

4.  项目打包.   打包命令mvn package -Pdev来指定激活id为 dev 的profile节点, 这样, 开发环境配置文件就会被打包.

开发: mvn package -Pdev (因为配置了默认激活dev部分, 所以也可以使用mvn package, 这与 mvn package -Pdev 效果相同)

测试: mvn package -Ptest

预演:mvn package -Pprev

生产:mvn package -Pprod

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

Java基础之反射原理与用法详解

这篇文章主要介绍了Java基础之反射原理与用法,结合实例形式详细分析了java反射的相关概念、原理、使用方法与操作注意事项,需要的朋友可以参考下
收藏 0 赞 0 分享

java字符串的截取方法substring()代码解析

这篇文章主要介绍了java字符串的截取方法substring()代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Mybatis一对多关联关系映射实现过程解析

这篇文章主要介绍了Mybatis一对多关联关系映射实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Java整数和字符串相互转化实例详解

这篇文章主要介绍了Java整数和字符串相互转化实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Spring Boot 项目设置网站图标的方法

这篇文章主要介绍了Spring Boot 项目设置网站图标的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

java多态机制原理特点详解

在本篇文章里小编给大家分享的是关于java多态机制原理特点详解,有需要的朋友们可以跟着学习下。
收藏 0 赞 0 分享

Jmeter如何添加循环控制器

这篇文章主要介绍了Jmeter如何添加循环控制器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

java虚拟机创建失败的原因整理

在本篇文章里小编给大家整理了关于创建java虚拟机失败的解决方法和知识点,需要的朋友们可以参考学习下。
收藏 0 赞 0 分享

Java如何把int类型转换成byte

这篇文章主要介绍了Java如何把int类型转换成byte,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

linux中java获取路径的实例代码

在本篇文章里小编给大家整理的是一篇关于linux中java获取路径的实例代码以及相关知识点,有兴趣的朋友们可以学习参考下。
收藏 0 赞 0 分享
查看更多