今天我注意到一些奇怪的事情。当我不在"在"一个项目(也就是说,shell不在clojure项目目录中),我可以使用exit
退出REPL:
shell$ lein repl
REPL started; server listening on localhost port 43712
user=> (+ 3 4)
7
user=> (exit)
shell$ echo '<span>not in <s>kansas</s>clojure anymore</span>'
当我&#34;&#34;在&#34;一个项目(也就是说,shell在一个clojure项目的目录中),我不能使用exit
:
shell$ cd my_clojure_project
shell$ lein repl
REPL started; server listening on localhost port 69237
user=> (* 8 4)
32
user=> (exit)
java.lang.Exception: Unable to resolve symbol: exit in this context (NO_SOURCE_FILE:2)
user=>
这里有什么问题?
Clojure版本(两个例子):
user=> (clojure-version)
"1.2.1"
Leiningen版本(两个例子):
shell$ lein -v
Leiningen 1.6.1 on Java 1.6.0_26 Java HotSpot(TM) 64-Bit Server VM
答案 0 :(得分:5)
似乎是因为当有项目时leiningen.core
命名空间不可用。更具体地说,当有项目时,项目的代码为evaluated in a separate ClassLoader,只有类路径上的项目。因此Leiningen的功能都不可用。
Leiningen 2 REPL没有这个问题。