我的Enclojure REPL有問題,並使用它的clojure模塊。加載/更改REPL到文件/ ns工作正常與一個孤立的clojure文件,但打破了一個文件,該文件引用另一個clojure文件,我嘗試從我的項目中使用。Enclojure REPL在加載時找不到依賴的clj文件
以下是具體步驟:
- 創建一個新項目。
- 創建的Clojure模塊foobar.clj(命名空間com.acme.foobar)
定義哪些在foobar.clj返回一個值的函數:
(NS com.acme.foobar (:使用COM .acme.othermodule))
(DEFN myfunc1 [] 「A」)
打開的Netbeans IDE REPL
從foobar.clj的上下文菜單中選擇:
- 變化REPL到文件/ ns的
- 負載
從REPL調用(myfunc1)功能。這只是正常:
com.acme.foobar =>(myfunc1) 「一」
的問題時,當我試圖從指到foobar的其他文件開始。這是我做的:
創建一個新的Clojure模塊othermodule.clj
(NS com.acme.othermodule)
(DEFN fromothermodule [] 「B」)
現在嘗試從foobar.clj打電話給我:
(defn myfunc2 [] (fromothermodule))
從othermodule.clj的上下文菜單中選擇我:
- 變化REPL到文件/ ns的
- 負載
爲了使REPL意識到有新的模塊,它應該可以運行。
- 我對foobar.clj做了同樣的事情,現在引用其他模塊。CLJ,但我得到:
CompilerException java.io.FileNotFoundException:找不到COM/ACME/othermodule__init.class或COM/ACME/othermodule.clj類路徑:(NO_SOURCE_FILE:50) com.acme。 foobar的=>
此錯誤消息來自兩個「更改REPL到文件/ NS」和「加載」
我缺少什麼?我應該採取其他一些技巧來實現這一點嗎?即使是運行 - >清理和構建主項目的絕望措施也無濟於事(無論如何,這當然會使REPL業務變得非常痛苦)。
我正在使用NetBeans 6.7.1和enclojure-plugin-2009-11-3.nbm。
謝謝! IDEA甚至沒有跨過我的想法,即使在我的工作機器上安裝了IDEA後,它已經被公開檢查出來了。我一定會嘗試。 我也會嘗試你的NetBeans技巧,但是如果我不能使用「context-menu-over-file-load」選項,可用性會受到很大的影響。 – auramo 2009-11-04 17:24:47
這是令人尷尬的:原來IDEA是帶有「lib」目錄的IDEA。呃,無論如何,我很高興你有正確的答案。 – 2009-11-04 19:02:02