1

我已经使用 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]
  1. Clojure 为什么要搜索这些文件?命名空间显然已经加载,因为我可以通过 切换到它C-c M-p,但出于某种原因,Clojure 认为这些特定文件对于使用命名空间很重要。

  2. 如何设置我的项目以便可以使用 SLIME 的基本命名空间?既然 lein 应该处理这个问题,我没有提供它需要的哪些信息?

4

1 回答 1

2

命名空间“clojure-test”应该在 ./src/clojure_test.clj 中(./src 默认在类路径中,除非您在 project.clj 文件中更改它)

你把它放进去了吗src/clojure_test/core.clj(应该有 ns clojure-test.core 代替)?

请参阅http://clojure.org/libs上的库文档

于 2012-01-14T10:23:46.023 回答