maven多环境配置
2019-03-03 本文已影响0人
一直在路上_求名
背景
在实际开发工作中,存在很多需要在properties配置文件中配置的属性。但是在开发过程中一般存在多个环境,包括本地环境、测试环境、预发布环境以及线上环境,而不同的环境配置的属性值又是不同的,因此需要使用到maven提供的profile功能,从而根据不同的环境配置不同的属性。
现状
由于多环境的原因,以及profile的功能,很多项目都是直接在父pom文件中,根据不同的环境写几套profile配置,写一堆的property属性,但是由于项目越来越复杂,需要配置的属性越来越多,因此pom文件变的越来越大,而且配置的属性也越来越乱,可维护性就变得很差了。
优化
主要原因是由于多maven缺乏了解,maven有一个帮助我们分离这些配置的功能,即<filters></filters>标签,我们可以父pom中使用这个标签,从而将pom中杂乱的属性配置提取出来,减小父pom文件的大小,同时也可以提高配置属性的可维护行一举两得。
实现
1、首先需要在项目中创建一个目录以及个环境对应的属性文件,将pom中的配置抽取到对应环境的配置文件中;

2、然后在父pom文件中,配置对应profile的环境变量参数;

3、然后使用<filters></filters>标签加载对应的配置属性文件;

总结
这种方式对于项目中配置比较复杂的情况是十分有必要的,可以简化pom文件中的配置,而且也提高了程序的可读性和可维护性。而且对于配置比较多,在一个环境下还可以建立多个文件,从而将不同的属性配置近一步隔离。