我们正在开发一个基于spring的web应用程序,它需要部署在各种环境中:
1)开发本地机器,以开发新功能、修复bug等。
2) QA Env#1 -让QA团队测试我们的版本
3) QA Env#2 -让QA团队测试我们的版本
4) QA Env#3 -让QA团队测试我们的版本
5)生产
现在,这些环境之一的每个部署都需要填充一个属性文件,该文件包含许多参数:
1) tomcat ips
2) mysql ip
3) mongo ip
4)负载均衡器ip
5) ehcache多播端口和地址。
6)更多的
我们的问题是:
应该在哪里定义这个属性文件?在我们的代码库里?(git,在每个环境的文件夹中?)在我们的webapp项目之外(这样,每个环境都应该用正确的属性文件更新一次,然后部署就会直接进行,根本没有配置)?
请记住,我们正在开发一台build\deploy机器,它将自动将我们的项目部署到所有这些env中,因此在决定正确的处理方法时要记住这一点。
发布于 2015-07-09 09:48:25
通常,我不会将属性文件保存在存储库中,即使我们讨论的是私有的属性文件。我想到的一些原因是:
您可以做的是在存储库中添加一些包含应用程序默认配置(例如本地开发人员配置)的属性文件模板。
然后,您可以为不同的环境拥有不同的属性文件,这些文件仅在涉及的团队中分发(QA配置给QA团队,部署配置仅用于部署的系统)。
您的build\deploy机器很可能访问所有不同的属性文件,并且可以根据目标环境检索正确的属性文件。使用这种配置,将这些文件保存在存储库中没有好处,只需将它们存储在有权更改这些文件的人和build\deploy机器可用的位置就足够了。
https://stackoverflow.com/questions/31313077
复制相似问题