Path 避免数据集路径硬编码的技术

Path 避免数据集路径硬编码的技术,path,versioning,hardcode,Path,Versioning,Hardcode,我有一些在版本控制下的共享项目(具体地说是svn和bazaar,但我正在寻找一个通用的解决方案),但是项目使用的数据集不是(太大,由不同的项目共享) 在源代码中,我需要“存储”数据集的路径。每个用户的路径可能不同,因此硬编码肯定是一个坏主意(我想总是这样) 我的实际解决方法是硬编码一个文本文件(比如“dataPath.txt”),其中存储了实际路径,并且该文件不受版本控制(每个项目参与者使用其自定义信息创建自己的文件)。 然而,解决方案相当脆弱: 1) 如果某个贡献者添加到VersionOne控

我有一些在版本控制下的共享项目(具体地说是svn和bazaar,但我正在寻找一个通用的解决方案),但是项目使用的数据集不是(太大,由不同的项目共享)

在源代码中,我需要“存储”数据集的路径。每个用户的路径可能不同,因此硬编码肯定是一个坏主意(我想总是这样)

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


在我的具体案例中,我使用的是Java,因此我觉得相关(即使我从未使用过属性),但我想知道是否有更通用的技术可以与不同的编程语言一起重用。

编写程序,以便它接受数据集的路径作为命令行参数。确保a)如果未指定数据集文件,则存在合理的默认值;b)如果未提供数据集文件,则程序正常退出。不需要在源代码中硬编码数据集路径。然后,您可以这样调用该程序(当然,您可以使用任何其他命令行选项字符:-):

prog-d dataPath.txt

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