目前,企业项目的开发过程中,往往会使用配置文件来做一些配置项来实现项目部署的灵活性,避免硬编码的方式在环境变化时需要对代码进行重新编译。但是往往在项目周期中存在着各种环境:如开发环境,测试环境以及生产环境等,而且在不同的运行环境中可能牵扯到大量的配置项变化。如果在不同的部署环境中切换,对配置文件的管理往往容易让程序员感觉非常的混乱。
为了避免这种换乱,研发过程中也有比较多的手段进行。比如,有公司就采用VPN的虚拟网络环境,让测试环境,生产环境的网络一致,让程序员在不同环境中对版本进行发布时只需要对VPN进行切换即可。以免发生网络配置项改错、漏改等现象的发生。这样个人觉得还不错,唯一有一点句是调整网络环境,设备环境的成本应该也比较高。
当然概要的方式应该算是比较经济的。我知道的比如spring-boot, maven都可以支持到概要文件的方式来对不同环境进行指定。本文希望介绍一下,我理解的使用maven的概要文件方式来进行不同环境切换。讲得不到位的地方希望看官嘴下留情,也多指定。
在maven的<代码>砰的一声。xml 代码>文件中有一个配置项叫着<代码>概要文件代码>节点,如下:
& lt; profiles> & lt; profile> & lt; id> test & lt; properties> & lt; active.profile> test & lt; jdbc.url> 127.0.0.1 & lt;/properties> & lt; activation> & lt; activeByDefault> false & lt;/activation> & lt;/profile> & lt; profile> & lt; id> develop & lt; properties> & lt; active.profile> develop & lt; jdbc.url> 192.168.1.102 & lt;/properties> & lt; activation> & lt; activeByDefault> true & lt;/activation> & lt;/profile> & lt; profile> & lt; id> product & lt; properties> & lt; actived.profile> product & lt; jdbc.url> 10.21.41.100 & lt;/properties> & lt; activation> & lt; activeByDefault> false & lt;/activation> & lt;/profile> & lt;/profiles>
其中<代码>概要文件代码> <代码>概要文件代码> <代码>概要文件代码> <代码> id 代码> <代码>属性> 代码<代码> 代码>
激活 <代码> id> 代码应该是为了区分<代码>概要文件> 代码用的。
<代码>属性> 代码就是对应的属性。
<代码> 激活代码应该是主要用来指定是否被默认激活的,它还有一个子节点<代码> activeByDefault> 代码,如果子节点<代码> activeByDefault> 代码内的值为真表示他会被激活。它还有一些子节点,但是不知道什么用。后续看看在学习下。
我准备建立一个简单的maven功能来实践一下maven的<代码>概要文件代码>实现不同的配置管理,所以首先需要建议一个maven工程。本文采用的是想法进行试验的。一下是我建立工程的结构图。