我有一些受版本控制的共享项目(具体来说是svn和bazaar,但我正在寻求一般解决方案),但是项目使用的数据集不是(太大并且由不同的项目共享)。
在源代码中,我需要“存储”数据集路径的某处。每个用户的路径可能不同,因此硬编码绝对是一个坏主意(我一直认为)。
我的实际解决方法是对存储实际路径的文本文件(例如“dataPath.txt”)进行硬编码,并且此文件不受版本控制(每个项目贡献者使用其自定义信息创建自己的文件)。 然而,解决方案非常脆弱: 1)如果某个贡献者添加到版本控制该文件很烦人 2)当我导出“可执行文件”时,我需要移动应该在同一目录(相对路径)中的文件。
在我的具体案例中,我使用Java,所以我发现this question相关(即使我从未使用过属性),但我想知道是否有更多通用技术可以重用不同的编程语言。
答案 0 :(得分:0)
编写程序,使其接受数据集的路径作为命令行参数。如果未指定数据集文件,请确保存在a)合理的默认值;或b)如果未提供数据集文件,程序将正常退出。无需在源代码中对数据集路径进行硬编码。然后你调用程序,例如像这样(当然你可以选择任何其他命令行选项字符:-)):
prog -d dataPath.txt
通常,在配置文件中提供此类设置是个好主意。使用Java,属性有帮助(正如您链接的SO问题中所指出的那样)。在其他语言中,我可能使用JSON格式的设置文件 - 可以使用解析库。