【问题标题】:Properties file in Git or outside project?Git或外部项目中的属性文件?
【发布时间】:2015-09-27 13:38:21
【问题描述】:

我们正在开发一个基于 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 项目之外(这样,每个环境都应该使用正确的属性文件更新一次,然后部署是直接的,根本不需要配置)?

请记住,我们正在开发一个构建\部署机器,它将自动将我们的项目部署到所有这些环境中,因此在决定处理此问题的正确方法时要牢记这一点。

【问题讨论】:

    标签: java spring git deployment properties


    【解决方案1】:

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

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

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

    • 防止错误。发生错误。开发人员错误地对 deploymentQA 属性文件进行了一些更改,可能会给您的构建/部署链带来一些严重的麻烦。

    您可以做的是向您的存储库添加一些 模板 用于包含应用程序默认配置(例如 本地 开发人员配置)的属性文件。 然后,您可以为不同的环境拥有不同的属性文件,仅在相关团队内分发(QA 配置到 QA 团队,部署配置用于已部署的系统)。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-15
      • 1970-01-01
      • 2013-04-15
      • 1970-01-01
      • 2012-03-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多