2014-06-08 58 views
0

我有一些在版本控制下的共享项目(具体来说是svn和bazaar,但我在寻求一个通用的解决方案),但项目使用的数据集不是(太大,不同的项目)。避免数据集路径硬编码的技术

在源代码中,我需要“存储”数据集路径的某处。每个用户的路径可能不同,所以硬编码绝对是一个坏主意(我一直这么认为)。

我的实际解决方法是对存储实际路径的文本文件(比如说“dataPath.txt”)进行硬编码,并且该文件不受版本控制(每个项目贡献者用他的自定义信息创建自己的文件)。 但是,这个解决方案非常脆弱:1)如果某个贡献者添加到版本控制文件中,它很烦人 2)当我导出“可执行文件”时,我需要移动应该在文件中相同的目录(相对路径)。

在我的具体情况下,我使用Java,所以我找到this question相关(即使我从来没有使用过属性),但是我想知道是否还有更多的通用技术可以用于不同的编程语言。

回答

0

编写程序,以便它接受数据集的路径作为命令行参数。如果未指定数据集文件,请确保有合理的默认值,或者b)如果未提供数据集文件,则程序将优雅地退出。不需要在源代码中对数据集路径进行硬编码。然后你会调用该程序,例如像这样的(当然你也可以采取任何其他的命令行选项字符,你喜欢:-)):

prog -d dataPath.txt

一般情况下,在配置文件中提供这样的设置是一个好主意。使用Java,属性会有所帮助(正如您链接的SO问题所指出的那样)。在其他语言中,我可能会使用JSON格式的设置文件 - 解析库可用。