两种针对不同环境切换配置文件的总结

前两周接了一个项目代码,得知此项目发布到生产和测试环境是手动替换配置文件,我们的环境是用jenkins发布的,这个时候就涉及到了根据不同环境切换配置文件,其次这个项目是父子模块的方式,还涉及到了用jenkins单独给子模块打包的命令。所以今天总结了两种根据不同环境自动切换配置文件的方式。

我们假设现在有三种环境:development(本地开发) 、 test(测试环境)、production(生产环境)

第一种我觉得简单的一种,使用maven的profile 参数:

在src/main/resources下创建三个目录来更加规范的放置我们的配置文件在pom.xml中配置profile

箭头画的对应的地方名字要相对应,在pom.xml的build节点中添加:

<activeByDefault>true</activeByDefault>节点的意思是默认使用的配置文件,这里默认的是开发的配置文件。

配置完之后更新一下pom.xml发现idea的Maven Proiect中增加了profiles选项,并且默认的development打了勾,这样我们install的时候就可以选择加载某个环境下的配置文件了,如果想加载test下就可以将test打勾,development取消勾选。

使用jenkins配置的时候 输入的打包命令为(mvn) clean install -Ptest/-Pproduction/-Pdevelopment  就会默认的只编译对应环境的配置文件

第二种使用spring的profiles配置 + tomcat设置运行环境:

创建一个spring的配置文件,我这里叫spring-deploy.xml:

将不同环境的配置文件已不同的名称命名,定义三个profile: development、test、production;

在web.xml中指定默认的profile

配置spring启动时可以加载到该配置文件 我的名称叫spring-deploy.xml

配置好之后 idea中设置tomcat的启动参数:

-Dspring.profiles.active="test"则使用生产环境的配置文件 同理将参数换为production /development则会对应切换

如果是linux中的tomcat则设置catalina.sh中则设置:JAVA_OPTS="-Dspring.profiles.active=test"

这种方式在jenkins打包的命令的时候只需要 clean install就可以了 没有多余的指定环境的操作

       两种方式对比:maven的方式貌似更简单一些,maven在打包的过程中只会编译相应环境的配置文件,spring profiles的方式会将所有的环境文件编译,在使用过程中加以区分。

 

对于父子项目中单独给子模块打包的mvn命令(适用于jenkins发布项目的时候按照需要使用):

mvn install -pl abc -am     单独构建 abc模块 以及abc的依赖模块

mvn  install -pl abc -am -amd  单独构建 abc模块 以及依赖abc的模块

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值