我尽量避免提出那些不会帮助其他人的问题,但是我已经这么长时间不去寻求帮助了。我试图在我的项目中使用this clojure wrapper for a java package作为依赖项,但我遇到了很多错误,因为没有project.clj。
我尝试在我的project.clj中使用lein-git-deps插件和以下键:
: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
而无法正常工作。
我已经能够克隆项目并调用成功编译并打开REPL实例的$ mvn package clojure: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)
答案 0 :(得分:1)
你说你做过的事听起来很合理。遗憾的是,这个项目并没有托管在clojars或maven中心,但至少有一个pom允许你自己轻松地发布或安装它。 mvn install
是正确的做法,当我自己克隆项目并安装它时,一切都安装正常,就像你说的那样。
但是,在尝试使用该库时,我无法重现您的错误。安装之后,我创建了一个新项目,它取决于刚刚安装的工件,在该项目的repl中,我可以很好地使用库的类。或者,我不知道如何使用这些功能,但这些功能可供我使用:
user=> (use 'clj-ta-lib.core)
nil
user=> ta
#<core$ta clj_ta_lib.core$ta@c668834>
所以我要说,确保你确实遵循了你所说的所有步骤,并且你的repl已经在项目中干净利落地开始了,这取决于你的库。
答案 1 :(得分:-1)
如前所述,https://mvnrepository.com/artifact/com.tictactec/ta-lib/0.4.0只是将[com.tictactec / ta-lib“0.4.0”]添加到依赖项中 在你的project.clj。
:dependencies [[com.tictactec/ta-lib "0.4.0"]]