我已经使用 swank 插件、Emacs、SLIME 和 clojure-mode 安装了 lein,并使用 lein new 创建了一个新项目。我已将项目称为 clojure-test。然后我在 Emacs 中打开 clojure_test/src/clojure_test/core.clj,并在这个文件中调用M-x clojure-jack-in
. 这会打开一个 SLIME 窗口,它工作正常;我可以使用 加载代码C-c C-l
,使用 切换到我的项目命名空间C-c M-p
,并使用我添加到项目中的依赖项。
当我尝试从“用户”命名空间中为项目本身使用命名空间时,就会出现问题。从“用户”命名空间调用(use 'clojure-test)
SLIME 内部会导致以下错误:
Could not locate clojure_test__init.class or clojure_test.clj on classpath:
[Thrown class java.io.FileNotFoundException]
Clojure 为什么要搜索这些文件?命名空间显然已经加载,因为我可以通过 切换到它
C-c M-p
,但出于某种原因,Clojure 认为这些特定文件对于使用命名空间很重要。如何设置我的项目以便可以使用 SLIME 的基本命名空间?既然 lein 应该处理这个问题,我没有提供它需要的哪些信息?