我儘量避免提問對其他人不起作用的問題,但是我一直在這個問題上拖得太久而不願意尋求幫助。我試圖在我的項目中使用this clojure wrapper for a java package作爲依賴項,但是我遇到了很多錯誤,因爲沒有project.clj。在沒有project.clj的情況下使用特定的clojure java-wrapper
我使用雷音-混帳DEPS插件在我project.clj以下鍵嘗試:
:plugins [[lein-git-deps "0.0.1-SNAPSHOT"]]
:git-dependencies [["https://github.com/lunkdjedi/clj-ta-lib"]]
運行$ lein git-deps
給了我下面的:
Setting up dependency for [https://github.com/lunkdjedi/clj-ta-lib]
Running git pull on .lein-git-deps
Running git checkout master in .lein-git-deps
,但沒有任何變化在我的本地目錄中,除了現在有一個空的.lein-git-deps/
目錄。我認爲這不起作用,因爲缺少project.clj
。
我已經能夠克隆該項目,並呼籲$ mvn package clojure:repl
成功編譯並打開一個REPL實例,我可以在其中完美地使用包裝。當我運行$ lein install
它給了我:
Couldn't find project.clj, which is needed for install
但是當我運行$ mvn install
它給了我一個BUILD SUCCESS
,可以在~/.m2/repositories/clj-ta-lib
找到。
我把:dependencies [[clj-ta-lib/clj-ta-lib "0.0.1"]]
我project.clj
並重新啓動REPL,但是當我打電話(use 'clj-ta-lib.core)
我得到:
CompilerException java.lang.Exception: namespace 'clj-ta-lib.core' not found, compiling:(*cider-repl app*:71:13)
編輯:
不再讓以前的錯誤,但仍然得到這一個:
CompilerException java.lang.IllegalArgumentException: No matching ctor found for class com.tictactec.ta.lib.meta.PriceHolder, compiling:(clj_ta_lib/core.clj:13:3)
我重新啓動了這個過程,並得到了另一個錯誤,一個我以前看過但沒有看到我編譯這篇文章時看到的錯誤。查看更新 – v4gil
更新中的錯誤可能是依賴版本不匹配。刪除你自己對你要使用的java庫的依賴,並讓clojure包裝器的傳遞依賴爲你完成工作。事實上,在clojure包裝上嘗試一個只有*一個*依賴的項目。如果可行,開始添加依賴關係直到找到問題。 – amalloy
這樣做!感謝您的指導,我也很享受4Clojure。有一天你可以將它作爲基於clojure的AGI的測試平臺! – v4gil