gpt4 book ai didi

java webapps 并将现有项目开源到 github - 属性文件

转载 作者:太空宇宙 更新时间:2023-11-04 15:00:13 25 4
gpt4 key购买 nike

我们为我们的一位客户开发了一个 java 网站/平台。

数据库属性(用户名、密码等)存储在项目的src/main/resources/*.properties中,例如database-live.properties、database-dev.properties、database-本地属性

客户决定将其平台开源,并从私有(private) bitbucket 存储库迁移到开放的 github 存储库。

这会带来一个问题,因为私有(private)存储库具有私有(private)数据库属性,不应公开。

因此,我们不会从 bitbucket 传输历史记录,而是在 github 上创建一个干净的存储库,并将 src/main/resources/*.properties 中的用户、密码等作为空白属性。然后,bitbucket 存储库将关闭,本地计算机和 live/dev 计算机的 origin 将更改为 github 存储库。

但是,在实时和开发环境中,我们仍然希望能够从 github 中 git pull 并运行 mvn clean install,但使用正确的数据库详细信息.

执行此操作的最佳方法是什么?我们是否应该将属性文件添加到 .gitignore,然后在各个计算机的本地存储库上,使用该环境的正确详细信息编辑文件?

或者我们应该以某种方式外部化配置,并在进行 Maven 构建时以某种方式包含它?最好的方法是什么?

这似乎是一个常见的用例,但也许我只是以错误的方式处理它。

最佳答案

我们很久以前就遇到过类似的问题。这是我们最终所做的:

我们概括了配置文件,并提供了充足的示例和注释来指示每个项目所代表的内容。试图让第一次尝试的人能够轻松地理解它们各自代表什么,以及它如何影响应用程序的行为。

然后我们维护了一个单独的存储库,比如说部署配置,仅用于将要部署的配置文件。它包含所有 xml 文件和属性文件,其中包含配置数据、用户名和密码等。

然后我们使用局部变量开发应用程序。在部署期间,部署脚本将从部署配置存储库中提取配置文件,并将其替换为应用程序存储库中的配置文件。

最终,我们没有开源它。但我们成功地将配置文件与应用程序存储库中的实际值分开。

关于java webapps 并将现有项目开源到 github - 属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22660080/

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