我处理几个小型Java项目(使用Maven + NetBeans)并将它们存储在a public git repository中。
我想在某些项目中使用PostgreSQL JDBC,但不想公开我的数据库的连接凭据。
当然还有其他开发者,他们已经遇到过类似的问题。
请分享您的解决方案。
可能会将数据库名称/用户/密码放入*.properties
文件中,然后在git存储库中将其忽略,但是将其保留在工作区中?如何在我的Java项目中加载该文件?
答案 0 :(得分:1)
你可以将这个文件添加到.gitignore中,但就像你说的那样将它保存在工作副本中,我真的没有在这里看到这个问题。 只是做
echo myprops.properties >> .gitignore
只要加载这些文件,您就可以获得更多信息here。他们建议像这样使用它们:
Properties defaultProps = new Properties();
FileInputStream in = new FileInputStream("defaultProperties");
defaultProps.load(in);
in.close();
然后,您可以使用getProperty(String key)
和getProperty(String key, String default)
我见过人们做的另一件事是编写一个git pre commit hook并使用sed
来替换文件中的凭据,但我对此没有任何经验。
答案 1 :(得分:1)
使用像@dbt这样的属性文件的另一种方法是使用环境变量。
因此,当您启动应用程序时,您可以将环境变量放入命令中。通常,应用程序将优先加载属性文件。
e.g。 它将检查属性文件并加载到所有属性。 如果存在环境变量,它将覆盖先前的值。
其他人将拥有多个属性文件,这些文件将按特定环境变量的值(例如staging,dev,production)加载。 这样,您可以为特定环境保留多个配置。
答案 2 :(得分:1)
另一种方法是使用~/.pgpass
来存储凭据。