Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java webapps和将现有项目开源到github-属性文件_Java_Github_Open Source - Fatal编程技术网

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

java webapps和将现有项目开源到github-属性文件,java,github,open-source,Java,Github,Open Source,我们为一位客户开发了一个java网站/平台 数据库属性用户名、密码等存储在项目的src/main/resources/*.properties中,例如database-live.properties、database-dev.properties、database-local.properties 客户已经决定,他们希望开放其平台的源代码,并从一个私有的bitbucket存储库转移到一个开放的github存储库 这就产生了一个问题,因为私有存储库具有私有数据库属性,不应该是公共的 因此,我们不会

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

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

客户已经决定,他们希望开放其平台的源代码,并从一个私有的bitbucket存储库转移到一个开放的github存储库

这就产生了一个问题,因为私有存储库具有私有数据库属性,不应该是公共的

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

然而,在live和dev设备上,我们仍然希望能够从github中提取git,并运行mvn clean install,但使用正确的db详细信息

做这件事最好的方法是什么? 我们是否应该将属性文件添加到.gitignore,然后在各种计算机的本地存储库中,使用该环境的正确详细信息编辑这些文件

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


这似乎是一个常见的用例,但也许我只是走错了方向。

很久以前我们也遇到过类似的问题。下面是我们最后做的:

我们概括了配置文件,并提供了大量示例和注释,以指示每个项将代表什么。试图让首次尝试它的人更容易理解它们各自代表什么,以及它们如何影响应用程序的行为

然后,我们维护了一个单独的repo,比如部署配置,只针对将进入部署的配置文件。它包含包含配置数据、用户名和密码等的所有xml文件和属性文件

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


最后,我们没有将其开源。但我们成功地将配置文件与实际值从应用程序repo中分离出来。

这正是我最终要做的。我们将*.properties重命名为*.properties.template,然后有一个单独的私有repo,其中配置了开发人员和生产人员