最简单的方法来管理我的CLASSPATH?

mwi*_*ams 5 java configuration clojure classpath

我开始玩Clojure了,我的Java经验非常有限.我来自Ruby和OO的动态世界,因此功能方面非常有趣!

无论如何,当我发现库和各种使用工具(以及Pragmatic Clojure Book的教程文件)时,所有内容通常都要求将文件放在CLASSPATH中,以便Clojure可以查看库以供使用.

有没有好的CLASSPATH练习?我是否只想要一个只有我需要的外部文件库的CLASSPATH,或者我可以继续在目录中抛出我需要的任何库或文件,只需将其定义为我的CLASSPATH并且只需要所需的东西?

如果它有帮助,我是OSX和Emacs用户(使用slime和swank-clojure).

dno*_*len 5

我建议使用leiningen和lein-swank来管理它.您可以在目录中启动REPL并从Emacs连接到它.


Mic*_*zyk 2

就我个人而言,我使用的clojure-project是 Phil Hagelberg 的 elisp 函数的变体,请参阅Clojure 小组这篇文章中的源代码。它会为您将要处理的项目适当地设置类路径,然后启动 SLIME。(编辑:您需要更改分配给的值swank-clojure-jar-path以指向clojure.jar。我使用(expand-file-name "~/.clojure/clojure.jar")默认值。)

要回答关于始终将所有内容都放在类路径上与只添加所需内容的问题:据我所知,如果采用第一种方法,实际上不会有任何问题(我知道我这样做是为了实验目的),但显然第一种方法可能会出现问题(请参阅下面 cjstehno 的评论),在正确的项目中,我发现第二种方法更干净。在某些时候,有必要确定正在使用哪些库(以及它们的哪些版本),如果只是为了告诉 leiningen (或 Maven)它 - 为什么不在使用时密切关注它。