从品牌网站建设到网络营销策划,从策略到执行的一站式服务
今天运维和开发就环境切换问题展开了一次小小的争论
maven打包之前配置文件是这样的:
创新互联网站建设公司一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!专注中小微企业官网定制,网站建设、网站设计,塑造企业网络形象打造互联网企业效应。
...
此时所有import进来的xml里面的${xxx}引用还在
maven打包之后是这样的:
...
此时所有import进来的xml里面的${xxx}引用已经被替换成具体值
上面就是实现多环境打包的样子,打包发布都是使勇jenkins完成,突然有一天领导说要把同样的代码放到另一套新的环境中去,本来可以增加一套新的properties文件完成,但是领导是跟运维说的,运维就想从tomcat/webapps解压好的项目中改一下文件名称,就像这样
直接拷贝到新的环境中运行
运维这样想:我从解压好的war项目中,修改配置文件里的一个字母,就能从a环境切换到b环境
这就要求所有import进来的xml文件在打包的时候不能被替换${xxx}引用值,保持源码状态,开发就实现${xxx}在打包后不被替换实现了一套方案如下:
创建一个中间文件config.properties,配置成这样
temp.key1=${key1}
temp.key2=${key2}
temp.key3=${key2}
...
然后把所有的xml文件引用的${xxx}都改成${temp.xxx}
这样配置完成之后是这样的,打包之后config.properties文件中会被替换成具体环境值,其他所有的xml文件保持不变,web容器启动的时候会从config.properties中读取对应的值,也是实现了多环境
这运维又说了这xml文件中的${temp.xxx}是没有被替换,但是还是不能方便的切换环境,要修改config.properties中所有的配置才行,就此展开一场没休止的争论。。。
解决方案:
实现这种不从新打包,拿一套新的配置,修改一个字母就能切换环境
这要用到maven打包resources配置:
src/main/resources spring/application-config.xml */.properties true src/main/resources spring/application-config.xml */.properties false
一个includes(需要过滤)配合一个excludes(不需要过滤),第一个resource表示配置文件spring/application-config.xml和*/.properties都是需要过滤的资源文件,需要替换其中的${xxx}引用,第二个resource表示配置文件spring/application-config.xml和*/.properties以外的文件也是资源文件,但是不需要替换其中的${xxx}引用
这样配置就能实现效果。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图