gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 22:14:44 24 4
gpt4 key购买 nike

我们正在开发一个基于 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) 蒙戈IP

4) 负载均衡器ip

5) ehcache多播端口和地址。

6)还有很多很多

我们的问题是:

这个属性文件应该在哪里定义?在我们的代码库中? (git,在每个环境的文件夹中?)在我们的 webapp 项目之外(这样,每个环境都应该使用正确的属性文件更新一次,然后部署就直接进行,根本不需要配置)?

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

最佳答案

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

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

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

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

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

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

关于java - Git 或外部项目中的属性文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31313077/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com