项目中经常使用配置文件来配置一些对环境依赖的数据,例如数据库连接、用户名、密码、以及一些域名、端口等等,而往往这些配置文件一般都是跟着项目工程一起提交到svn中,即每个项目组成员同步代码时这些config配置都会同步下来,保持一致,有这么一种场景,每个开发人员在本地运行代码,可能会重新配置一些本地的数据,例如域名、端口,这就需要修改这个配置文件,然后打包运行,这本没有任何问题,不过这也可能是杯具开始的源头,某个开发人员如果一不小心将这个配置文件commit到svn中了,其他开发人员可能更新的时候就会更新到这个开发人员的本地配置,导致之前本来配置好的数据被update下来的数据给覆盖了,系统运行不起来,岂不是杯具。
如何解决这个问题?其实解决思想比较简单,我们希望理想的个性化环境配置数据按照这个过程来处理:如果开发本地没有这个配置数据,那么就使用系统默认配置,否则使用开发本地配置数据覆盖默认配置。
利用maven来说明一下,如果利用maven