我已将Maven的库安装到〜/ .m2 / repository /目录中。我想将该路径添加到默认的Clojure类路径。我找不到文档如何做到这一点。
任何提示?
干杯!
clj
Clojure 1.4.0
user=> (require '[clojure.java.jmx :as jmx])
FileNotFoundException Could not locate clojure/java/jmx__init.class or clojure/java/jmx.clj on classpath: clojure.lang.RT.load (RT.java:432)
默认情况下,类路径为:
user=> (println (seq (.getURLs (java.lang.ClassLoader/getSystemClassLoader))))
(#<URL file:/Users/myuser/cljmx/> #<URL file:/usr/local/Cellar/clojure/1.4.0/clojure-1.4.0.jar> #<URL file:/Users/myuser/cljmx/>)
nil
答案 0 :(得分:11)
这假设您正在使用的库不是maven仓库中的一部分的一部分,也可以从maven仓库中获得,很多都是。
答案 1 :(得分:9)
非痛苦,流行的方法是不要直接使用maven和类路径以及JRE,并使用leiningen:https://github.com/technomancy/leiningen/
否则,你可以修改clj
中的任何内容,并以java喜欢的方式添加/设置类路径。请参阅示例Setting multiple jars in java classpath
答案 2 :(得分:9)
应该注意的是,您还可以选择在运行时使用库石榴https://github.com/cemerick/pomegranate
添加类路径这可以让你这样做:
(require '[cemerick.pomegranate :as pom])
(pom/add-classpath "/home/user/~.m2/....")
答案 3 :(得分:6)
我假设clj
是一个启动Clojure REPL的脚本。查看此脚本并找到与此类似的行:
java -cp /path/to/clojure.jar clojure.main
在这里,您可以在类路径上启动具有“clojure.jar”的类clojure.main
。要添加更多jar,只需将它们添加到-cp
选项值的末尾即可。例如。在Linux上:
java -cp /path/to/clojure.jar:/path/to/mylib.jar clojure.main
(在Windows上使用;
代替:
)
然而,很快你会厌倦这种方式并寻找项目管理工具。所以现在开始使用它是有道理的。看看Leiningen - 它基于Maven为你管理依赖关系(因此添加新jar非常容易)并且有REPL。