Clojure 2024 调查问卷! 中分享您的想法。

欢迎!请参阅 关于 页面了解更多关于此方式的信息。

+2
tools.deps
目前 tools.deps 不支持包含自带的原生库的 jars。

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 命名空间中,cast 已经引用了: #'clojure.core/cast,现在将被替换为: #'tech.datatype.base/cast
警告:在 tech.datatype 命名空间中,cast 已经引用了: #'clojure.core/cast,现在将被替换为: #'tech.datatype/cast
编译器异常 java.lang.ClassNotFoundException: org.bytedeco.javacpp.opencv, 编译:(tech/opencv.clj:1:1)

这种方式在 leiningen 和 java 中都有效。

以下是 Leiningen 的代码片段,用于执行此操作:

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

很多 Java 软件都这样做。

1. 尽可能地从系统中载入库。
如果失败,将 jar 包中包含的库提取到临时位置并尝试加载。

我相信这是最好的途径,尽管这在 tools.deps 的范围之外;或许可能会有一个配套库?

1 答案

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