Git或外部项目中的属性文件?

时间:2015-07-09 09:13:03

标签: java spring git deployment properties

我们正在开发一个基于Spring的Web应用程序,需要在各种环境中部署:

1)开发本地机器以开发新功能\修复错误等。

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计算机,它会自动将我们的项目部署到所有这些环境中,因此在决定处理此问题的正确方法时,请记住这一点。

1 个答案:

答案 0 :(得分:3)

一般情况下,我不会将属性文件保存在存储库中,即使我们正在谈论私有文件。我想到的一些原因是:

  • 不需要版本控制。我个人认为没有必要保留部署版本历史或QA属性文件。

  • 客户隐私。您可能不希望与所有有权访问存储库的人共享部署配置(开发人员,QA团队......)。

  • 防止错误。发生错误。开发人员错误地提交对部署 QA 属性文件的某些更改可能会给构建/部署链带来一些严重问题。

您可以为存储库添加一些模板,以获取包含应用程序默认配置的属性文件(例如本地开发人员配置)。<登记/> 然后,您可以为不同的环境提供不同的属性文件,这些文件仅在相关团队中分发(QA配置到QA团队,部署系统的部署配置)。

您的build \ deploy计算机很可能可以访问所有不同的属性文件,并且可以根据目标环境检索正确的文件。使用这样的配置,您无法将这些文件保存在存储库中,只需将它们存储在有权更改它们的人可用的位置以及构建\部署机器中。