gpt4 book ai didi

java - 如何在 clojure 中导入本地 java 库? (莱恩)

转载 作者:搜寻专家 更新时间:2023-10-31 19:55:02 25 4
gpt4 key购买 nike

我正在尝试使用一个名为 DragonConsole 的 java 库(jar 文件),它不在 maven central 或 clojars 上。

我想在我的 clojure 应用程序中导入这个库,但到目前为止我还不知道该怎么做。

我尝试设置本地 Maven 存储库,但我认为我做的不对。

lein deps 给我这个错误:

(Retrieving dragonconsole/dragonconsole/3.0.0/dragonconsole-3.0.0.pom from local)
(Could not transfer artifact dragonconsole:dragonconsole:pom:3.0.0 from/to local)
(file:/home/michael/clj/enclojed/maven_repository/): no supported algorithms found)

项目.clj:

:dependencies [[org.clojure/clojure "1.6.0"]
[clojure-lanterna "0.9.4"]
[dragonconsole "3.0.0"]]
:repositories [["local" {:url ~(str (.toURI (java.io.File. "maven_repository")))}]]

项目文件夹:

maven_repository/DragonConsolev3.jar
maven_repository/dragonconsole/dragonconsole/maven-metadata-local.xml
maven_repository/dragonconsole/dragonconsole/3.0.0/dragonconsole-3.0.0.pom
doc/...
src/...
test/...
resources/...
project.clj

如果您需要查看任何其他文件,check the git page .

最佳答案

这可能是最简单的方法。你有 ~/.m2 目录吗?

1) 在 project.clj 添加你的依赖,例如:dependencies [[dragonconsole "3.0.0"]]

当你运行 lein run/test/etc 时,它会尝试从 maven central 和 clojars 中 pull 库,它会在 ~/.m2 下为你创建一个路径,例如 ~/.m2/repository/dragonconsole/dragonconsole/3.0.0/

注意:如果存在同名同版本的库,只需删除下载的内容(jar、pom等...)

2) 在 ~/.m2 的 dragonconsole 目录下创建一个指向你的 jar 的符号链接(symbolic link),例如ln -s/path/to/project/dragonconsole-3.0.0.jar ~/.m2/repository/dragonconsole/...

这次当您运行 lein run/test/etc 时,它将起作用。这是我发现的最简单和最干净的方法,尽管我没有太多时间四处闲逛。我喜欢它,因为您的代码和构建过程不会比需要更改更多(只需一行即可添加依赖项)。

对于生产,我会寻找一种方法来添加 lein 存储库“源”,因此它会在我的自定义存储库中查找,然后是 Maven Central,然后是 clojars。

关于java - 如何在 clojure 中导入本地 java 库? (莱恩),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24963702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com