Mat*_*ick 4 clojure exit leiningen
今天我发现奇怪的事.当我不在"在"项目(即,外壳是不是在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>'
Run Code Online (Sandbox Code Playgroud)
当我"进入"一个项目(也就是说,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=>
Run Code Online (Sandbox Code Playgroud)
这是什么问题?
Clojure版本(两个例子):
user=> (clojure-version)
"1.2.1"
Run Code Online (Sandbox Code Playgroud)
Leiningen版本(两个例子):
shell$ lein -v
Leiningen 1.6.1 on Java 1.6.0_26 Java HotSpot(TM) 64-Bit Server VM
Run Code Online (Sandbox Code Playgroud)
这似乎是因为leiningen.core当有项目时命名空间不可用.更具体地说,当存在项目时,项目的代码将在单独的ClassLoader中进行评估,并且只有类路径上的项目.因此Leiningen的功能都不可用.
Leiningen 2 REPL没有这个问题.
| 归档时间: |
|
| 查看次数: |
233 次 |
| 最近记录: |