请在 2024 年 Clojure 调查问卷 中分享您的想法!

欢迎!有关此功能的工作方式,请参阅关于页面了解详细信息。

+2
tools.deps
目前 tools.deps 不支持包装它们自己的本地库的 JAR 文件。

chrisn@chrisn-dt:~/dev/tvm-clj/tvm/build$ clojure -Sdeps '{:deps {techascent/tech.opencv {:mvn/version "1.2"}}}'
Clojure 1.9.0
user=> (require '[tech.opencv :as opencv])
警告:已在命名空间 tech.datatype.base 中存在名为:#'clojure.core/cast,正在被:#'tech.datatype.base/cast 替换
警告:已在命名空间 tech.datatype 中存在名为:#'clojure.core/cast,正在被:#'tech.datatype/cast 替换
CompilerException java.lang.ClassNotFoundException: org.bytedeco.javacpp.opencv_core, 编译:(tech/opencv.clj:1:1)

这种形式通过 leiningen 和 java 可以正常工作。

以下是从 leinigen 代码中摘录的这部分来完成此事

https://github.com/technomancy/leiningen/blob/master/leiningen-core/src/leiningen/core/classpath.clj

许多 Java 软件都这样做

1.  如果可能,它们将尝试从系统中加载库。
2.  如果失败,它们将提取 JAR 文件中包含的库到临时位置,并尝试加载。

我认为这是最好的途径,尽管它在 tools.deps 的范围之外;或许可以有一个伴侣库?

1 答案

0
参考:https://clojure.atlassian.net/browse/TDEPS-103(由 alex+import 报告)
...