Leiningen作为依赖项下载了clojure-1.9.0.jar
,它位于~/.m2/repository/org/clojure/clojure/1.9.0
。通过 lein repl 可以正常工作。
但是,如果我从~/.m2/repository/org/clojure/clojure
目录中运行java -jar 1.9.0/clojure-1.9.0.jar
,而不是期望的行为(启动REPL),会出现异常:
Could not locate clojure/spec/alpha__init.class or clojure/spec/alpha.clj on classpath.
对于其他Clojure版本(1.8.0、1.6.0、1.4.0),可以得到预期的REPL。
那么clojure-1.9.0.jar有什么问题,还是我的设置有问题,或者我的理解有误呢?
注意:
如果我在包含Clojure 1.9.0依赖项的项目目录中运行lein repl
,则会获得带有Clojure 1.9.0的REPL,但是如果我从任何其他目录启动Leiningen,则会获得带有Clojure 1.8.0的REPL。 在两种情况下,REPL版本均为REPL-y 0.3.7,nREPL 0.2.12
。
运行lein upgrade
会显示消息Leiningen is already up-to-date.
clj
命令行工具进行基本的 REPL - 请参阅 https://clojure.org/guides/getting_started 进行安装。 - Alex Miller