我们有一种情况,config.properties
在我们的构建过程中调用了十几个文件:
config.properties.dev
config.properties.qa
config.properties.prod1
config.properties.prod2
我们当前的安装过程config.properties
将该环境的 复制到config.properties
. (我对此并不感到兴奋,但这是我现在必须处理的。)
除了三个或四个属性外,所有这些文件都完全相同。不幸的是,这些在所有文件中并不总是相同的属性。我们想要做的是像这样设置一个主人 config.properties
:
掌握config.properties
prop1 = value1
prop2 = value2
prop3 = value3
prop4 = value4
然后为每个环境有一个单独的`config.properties,其中只包含与主服务器不同的属性:
config.properties.prod
:
prop3 = value3.1
prop4 = value4.1
config.properties.qa
prop2 = value2.1
prop3 = value3.2
我们认为在进行部署时可以将这两个文件连接在一起:
cat config.properties.$env >> config.properties
并以这种方式获取组合属性文件:
结合config.properties
prop1 = value1
prop2 = value2
prop3 = value3
prop4 = value4
prop2 = value2.1
prop3 = value3.2
不幸的是,我们不知道 Java 如何处理这样的文件。它是第一个定义的属性,还是最后一个定义的属性,或者行为完全未定义?
如果这不起作用,在配置脚本(通常是 BASH 脚本)中将多个属性组合到单个属性文件中的最佳方法是什么?