File io 在clojure中获取配置文件的操作系统无关方法

File io 在clojure中获取配置文件的操作系统无关方法,file-io,clojure,File Io,Clojure,我有一些clojure应用程序,它们将.properties文件中的敏感信息加载到/etc/中,到目前为止效果良好 最近,我不得不处理一些添加到服务器集合中的windows计算机,我还需要在这些计算机上运行clojure应用程序。Windows显然没有或不理解/etc/路径,我通过查看/etc/绕过了这个事实,如果没有,请查看d:\configs 但我不太喜欢这种方式,因为如果有另一个windows开发人员在研究它,而他没有d:\或更喜欢在其他地方进行配置,它会变得混乱 有什么方法可以从cloj

我有一些clojure应用程序,它们将
.properties
文件中的敏感信息加载到
/etc/
中,到目前为止效果良好

最近,我不得不处理一些添加到服务器集合中的windows计算机,我还需要在这些计算机上运行clojure应用程序。Windows显然没有或不理解
/etc/
路径,我通过查看
/etc/
绕过了这个事实,如果没有,请查看
d:\configs

但我不太喜欢这种方式,因为如果有另一个windows开发人员在研究它,而他没有
d:\
或更喜欢在其他地方进行配置,它会变得混乱

有什么方法可以从clojure加载文件,无论它是什么操作系统?我最初的想法是在环境变量中保存一个关键路径,并从clojure访问它

我只是想知道是否有更好的方法。 谢谢。

看一看。在配置Clojure应用程序时,它提供了一定的灵活性,允许您在许多选项中进行选择:

  • 环境变量:这似乎是Clojureland的做法,所以我认为你最初的想法并不是最糟糕的
  • ~/.lein/profiles.clj
    中:您可以将它们作为Clojure数据存储在
    :user
    配置文件中-我想这听起来很不错
  • Java CLI属性:最后,您可以通过命令行直接将它们传递给
    Java
    可执行文件

environ
将从所有这些地方收集数据。

在项目目录中存储配置可能会有所帮助,因为相对路径应该可以在任何操作系统上工作。@LeonidBeschastny-我的项目经理严格反对,人们可能会将其提交给github等等。。恐怕这不是一个选项。我会使用你的解决方案EnvVar。那么,你的经理不信任
.gitignore
?@LeonidBeschastny他信任,但他不信任将启动新项目并提交的实习生。让我们不要问这个问题,我不能使用相对路径来存储配置,我想要一种方法来获取配置的路径,而不管底层操作系统是什么。如果你在这方面有任何想法,请让我知道,谢谢。谢谢,查看库,我想我还是会使用环境变量吧!