maven使用profile动态配置(IDEA演示) | 您所在的位置:网站首页 › ideamaven工具栏 › maven使用profile动态配置(IDEA演示) |
文章目录
简介需求简介开工配置几个环境添加不同环境配置文件引用修改配置文件修改环境配置文件修改原有数据库配置文件
配置resources路径尝试效果
其他使用遇到的坑参考的博客
简介
使用Maven的profile来切换不同环境(开发/测试/发布生产)的配置文件 需求简介通过把不同环境的配置参数信息,放到不同环境的配置文件里(例如:dev.properties开发环境配置文件).Maven在打包的时候根据选择不同的环境(例如dev:生产环境)调用对应的配置文件(dev.properties)中的属性值,替换其余配置文件里引用的变量(本例替换datasource.properties里的${key}). 开工 配置几个环境打开pom.xml,添加如下代码.下面示例内容提供了3种环境模式,可以根据需求自行添加/删除模式. dev dev false true prod prod true test test true org.apache.maven.plugins maven-surefire-plugin 2.18.1 ${skiptestconf} ${skiptestconf} 添加不同环境配置文件引用继续编辑pom.xml .注意路径,本例中间路径是resource 不是resources src/main/resource/profiles/${profiles.active}.properties去项目目录按照上面目录创建文件夹和文件,见下图 src/main/resource/profiles/ 本次以修改数据库配置链接为例子演示. 编辑dev.properties,本例提供给datasouce.properties读取. 注意:这里给每个属性加了前缀 profile. 为了跟原来属性区分,如果名字一样之后${key}取值会有分歧问题 #主库连接 profile.master.jdbc.url=jdbc:mysql://192.168.1.111:3306/db1?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false profile.master.jdbc.username=rootDev profile.master.jdbc.password=pwdDev编辑test.properties #主库连接 profile.master.jdbc.url=jdbc:mysql://192.168.1.222:3306/db2?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false profile.master.jdbc.username=rootTest profile.master.jdbc.password=pwdTest节省篇幅(我要偷懒)编辑prod.properties略… 修改原有数据库配置文件本项目使用的数据库配置文件名是datasource.properties.根据自己需求也可以修改一些xml配置文件,调用变量用法一致. 注意下面引用的${内容跟配置的dev/test.properties里的key一致} #主库连接 master.jdbc.driver=com.mysql.jdbc.Driver master.jdbc.url=${profile.master.jdbc.url} master.jdbc.username=${profile.master.jdbc.username} master.jdbc.password=${profile.master.jdbc.password} 配置resources路径由于不是标准的maven项目目录结构,所以手动指认resources目录为resource src/main/resource profiles/* true 尝试效果idea里打开maven项目的窗口 先clean下项目,再install下看打包效果 注意:确认下图中的target文件夹确定不存在了,有时候因为target下内容被打开状态或者项目运行中导致clean失败等Maven install成功结束后 也可以查看war包项目下的配置文件也随着修改了.节省篇幅就不再演示了(懒) 有错误或者问题欢迎留言沟通讨论~ 其他使用如果有时候希望把不同环境下的文件(例如:某些文件适配不同操作系统)也对应环境打包,推荐建立dev/test/prod的文件夹来做,方便打包时哪个文件夹被包含/不包含. 遇到的坑如果是读取properties里的内容放入xml中,是不需要填写转义符的. #反向例子:properties里的&符号 profile.master.jdbc.url=jdbc:mysql://192.168.9.120:3306/database?useUnicode=true;characterEncoding=UTF-8 #正向例子:应该直接使用&符号即可. profile.master.jdbc.url=jdbc:mysql://192.168.9.120:3306/database?useUnicode=true&characterEncoding=UTF-8 参考的博客https://blog.csdn.net/java_collect/article/details/83870215 |
CopyRight 2018-2019 实验室设备网 版权所有 |