2012-06-25 41 views
2

我正在嘗試編寫一個與最新版本和下一個2.0版本兼容的Leiningen插件,但是在運行插件時遇到了麻煩。我的意思是我想編寫代碼,然後運行lein foo以在插件代碼本身上運行最新版本的插件代碼。我project.clj文件如下:Clojure中引導式Leiningen插件開發

(defproject foo "0.0.0" 
    :description "simple version for experiment" 
    :dependencies [[org.clojure/clojure "1.4.0"] 
       [fs "1.1.2"]] 
    :source-path "src/clj") 

在src/CLJ/leiningen文件夾我有一個只是調用函數的src/CLJ /酒吧/富-test.clj簡單foo.clj文件打印項目目錄的內容。然而,每當我運行lein foo它說不能在CLASSPATH上找到foo.clj。如果我將src/clj中的所有文件移動到src並刪除:source-path指令,那麼它會在foo.clj中運行正確的內容,但會抱怨在CLASSPATH中找不到fs.clj。如果不需要在project.clj和lein install,deps,foo之間添加foo依賴關係,我希望這會更容易,但目前只有這樣才能使其工作。

謝謝你的幫忙!

回答

0

根據:https://github.com/technomancy/leiningen/blob/master/doc/PLUGINS.md,:source-path現在在Leiningen 2.0中爲:source-paths,並且應該包含一個向量而不是直接字符串。

另一個潛在的錯誤是你沒有:eval-in-leiningen true在項目文件中。我相信這對於繼承leiningen本身的CLASSPATH是必要的。我不確定這是否會觸發與fs.clj有關的任何問題。