我正在开发一个在两个地方运行的项目,一个在活动服务器上,另一个在本地测试环境中。这两个副本仅在一些配置文件(存储名称,URL,数据库信息等)方面有所不同。
现在我这样工作:
对本地副本进行一些编辑,在本地测试环境中测试新版本,如果一切正常,svn commit;
转到服务器,svn更新,手动解决冲突 - 但是有很多编辑,因为许多配置项在两个副本之间有所不同...而且我不想简单地接受mc,因为配置文件可能会有一些变化......
现在我想将配置文件的两个副本保存在repo中,在我的本地副本中来回切换文件名,所以在更新服务器副本时我不需要处理冲突。有没有更聪明的方法呢?
答案 0 :(得分:2)
您可以保留两个不同的文件,并使用其中一个文件的符号链接。
project
|-configuration
| |-development.cfg
| \-production.cfg
\-config.cfg < symbolic link to configuration/development.cfg
首次结帐时,您必须创建指向其中一个文件的符号链接。
答案 1 :(得分:1)
创建三个配置文件:
更改配置阅读器,使其可以读取多个文件(以后的文件中的选项会覆盖之前的文件)。
这允许您拆分配置(您可以在开发机器上准备生产配置,甚至可以在那里进行测试)。
现在您只需要添加一个可选的命令行选项。如果选项存在,则读取公共+生产配置。如果缺少(在开发期间),则使用common + test配置。
答案 2 :(得分:0)
您应该尽可能多地保留JNDI命名资源的资源。您可以在不同值前面使用相同的JNDI名称配置测试和prod服务器。您的应用不必改变这种方式。
我使用环境变量或标志来告诉应用程序使用哪种版本的配置。
答案 3 :(得分:0)