在项目开发过程中,我们经常遇到这样的问题,就是我们的配置项会因为环境的不同,配置项文件的内容也不同。
举个简单的例子吧。
数据库的连接,我们在不同的环境下,使用的数据库一般都是不同的,开发环境使用开发数据库,测试环境使用测试数据库,线上环境使用生产数据库。
(感叹下:淘宝数据库使用的是TDDL动态数据源,并且有SCM配置中心进行配置项的管理,所以开发者无需关心这类问题)
那么,在没有配置中心的情况下,我们怎么管理我们的配置项呢?
其实,maven已经提供了这方面的,支持。这个就是profile。你可以按照如下方式配置你的pom文件,可以做到简单的配置文件区分。(假设开发者机器是windows,使用的配置项文件是dev.properties,生产机使用的是linux,使用的配置项文件是pro.properties)
POM部分配置内容:
<profiles>
<profile>
<id>linux</id>
<activation>
<os>
<family>linux</family>
</os>
</activation>
<properties>
<antx.properties.file>
${basedir}/src/main/webapp/META-INF/pro.properties
</antx.properties.file>
</properties>
</profile>
<profile>
<id>windows</id>
<activation>
<os>
<family>windows</family>
</os>
</activation>
<properties>
<antx.properties.file>
{basedir}/src/main/webapp/META-INF/dev.properties
</antx.properties.file>
</properties>
</profile>
</profiles>
这是最简单的处理方式,根据操作系统不同来选择不同的文件作为你的配置项。
但如果你的环境还分开发环境(dev)、测试环境(test)、预发布环境(rea)、生成环境(pro)呢,仅仅靠操作系统是无法区分开的。
这时候 mvn package –P ${profileId} 可以帮到你。
POM文件配置如下:
<build>部分:
<build>
.....此次省略部分配置内容...
<filters>
<filter>{basedir}/src/main/webapp/META-INF/{env}.properties </filter>
</filters>
.....此次省略部分配置内容...
</build>
<profiles>部分:
<profiles>
<!-- 开发环境,默认激活 -->
<profile>
<id>dev</id>
<properties>
<env>dev</env>
</properties>
<activation>
<activeByDefault>true</activeByDefault><!--默认启用的是dev环境配置-->
</activation>
</profile>
<!-- 测试环境 -->
<profile>
<id>test</id>
<properties>
<env>test</env>
</properties>
</profile>
<!-- 预发布环境 -->
<profile>
<id>rea</id>
<properties>
<env>rea</env>
</properties>
</profile>
<!-- 生产环境 -->
<profile>
<id>pro</id>
<properties>
<env>pro</env>
</properties>
</profile>
</profiles>
这样,当执行 mvn package –P test 将会使用test.properties作为你的配置项文件,
执行mvn package –P pro 将会使用pro.properties作为你的配置项文件。
是不是灵活多啦?
相关推荐
在maven中实现多环境的构建可移植性需要使用profile,通过不同的环境激活不同的profile来达到构建的可移植性。
使用maven Profile实现多环境构建,详细请参考 :http://blog.csdn.net/u011781521/article/details/77899467
maven的编程环境配置,配置maven编程环境的环境变量。
当前案例中包含一整套的代码和word文档,非常适合新手... 主要是通过maven打包加载不同环境的properties文件 然后将对于的属性绑定到指定的实体对象中;然后通过调用接口可以看到加载不同环境控制台打印的内容是不一样的
JDK和maven的环境变量配置,有图有真相
maven环境变量配置及验证配置,下载前请仔细阅读资源描述,否则后果自负,最终解释权归作者所有
配置java环境,maven环境,以及整合maven+eclipse,配置maven的远程仓库
maven 安装 环境变量配置 步骤简单清晰 一看就会 不用烦恼
2 配置maven环境变量 (1)在系统变量栏新建变量 (2)编辑系统变量的Path,结尾添加 ;%MAVEN_HOME%\bin(注意分号) (3)cmd,命令行输入mvn -v,出现下面结果即环境变量配置成功 3 修改maven连接仓库为本地...
简述windows环境下,maven环境的搭建以及MyEclipse配置maven项目的方法,适合初学者
maven工具的使用 目 录 Maven 环境的配置 ...7. 配置项目pom.xml 6 8. 编译打包maven项目 9 9. MAVEN 查找类库: 10 10. MAVEN本地jar包初始化 11 11、MAVEN安装到私服(依赖于Maven Nexus配置) 11
NULL 博文链接:https://hejiawangjava.iteye.com/blog/2280427
maven环境变量配置教程
maven下载环境变量配置安装,maven添加本地仓库,eclispe配置maven,创建maven项目
主要介绍了使用maven profile指定配置文件打包适用多环境的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Maven环境配置包含了Maven的配置,eclipse配置Maven,使用eclipse创建java、javaWeb项目,配置Maven环境Nexus本地仓库环境。
maven 配置环境变量,需要从官网下载本地程序包,设置电脑的环境变量,开发java project 项目使用maven 仓库,本地maven仓库
maven项目的配置POM配置文件,主要是maven项目的配置,直接从中央仓库下载内容。
自用maven-3.8.4,内含maven配置环境变量保姆级教程.doc
开发项目必备的环境变量配置,其中包含java/maven/tomcat环境变量配置