使用没有 project.clj 的特定 clojure java-wrapper
Using particular clojure java-wrapper with no project.clj
我尽量避免提出对其他人没有帮助的问题,但我已经在这个问题上待了太久,不能不寻求帮助。我试图在我的项目中使用 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
.
我已经能够克隆项目并调用 $ 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)
你说你做过的事情听起来很有道理。很遗憾该项目没有托管在 clojars 或 maven central 上,但至少有一个 pom 允许您自己轻松发布或安装它。 mvn install
是正确的做法,当我自己克隆项目并安装它时,一切都安装得很好,就像你说的那样。
但是,我在尝试使用该库时无法重现您的错误。安装后,我创建了一个依赖刚刚安装的工件的新项目,并且在该项目内的 repl 中,我可以使用库的 类 就好了。或者,嗯,我不知道如何按预期使用这些功能,但我可以使用这些功能:
user=> (use 'clj-ta-lib.core)
nil
user=> ta
#<core$ta clj_ta_lib.core$ta@c668834>
所以我要说的是,请确保您确实按照您所说的所有步骤进行操作,并且您的 repl 已在依赖于您的库的项目中干净地启动。
如这里所述,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"]]
我尽量避免提出对其他人没有帮助的问题,但我已经在这个问题上待了太久,不能不寻求帮助。我试图在我的项目中使用 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
.
我已经能够克隆项目并调用 $ 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)
你说你做过的事情听起来很有道理。很遗憾该项目没有托管在 clojars 或 maven central 上,但至少有一个 pom 允许您自己轻松发布或安装它。 mvn install
是正确的做法,当我自己克隆项目并安装它时,一切都安装得很好,就像你说的那样。
但是,我在尝试使用该库时无法重现您的错误。安装后,我创建了一个依赖刚刚安装的工件的新项目,并且在该项目内的 repl 中,我可以使用库的 类 就好了。或者,嗯,我不知道如何按预期使用这些功能,但我可以使用这些功能:
user=> (use 'clj-ta-lib.core)
nil
user=> ta
#<core$ta clj_ta_lib.core$ta@c668834>
所以我要说的是,请确保您确实按照您所说的所有步骤进行操作,并且您的 repl 已在依赖于您的库的项目中干净地启动。
如这里所述,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"]]