0

我有一个类似于将3rd-party jar 部署到 clojars 的问题?

我已经使用lein deploy. 该项目依赖于一个 jar 依赖项,我只是将它放在本地驱动器上的一个文件夹中,然后:resource-paths按以下方式导入我的文件中:

(defproject cljblpapiwrapper "0.1.0-SNAPSHOT"
  :description ""
  :url ""
  :license {:name "" :url ""}
  :dependencies [[org.clojure/clojure "1.9.0"]]
  :resource-paths ["resources/blpapi-3.8.8-2.jar"]
  :repl-options {:init-ns cljblpapiwrapper.core})

现在在另一个项目中导入我部署的 clojars 存储库时,它无法在 jar 存储库中找到类。我得到这个跟踪:

#error {
 :cause com.bloomberglp.blpapi.CorrelationID
 :via
 [{:type clojure.lang.Compiler$CompilerException
   :message java.lang.ClassNotFoundException: com.bloomberglp.blpapi.CorrelationID, compiling:(cljblpapiwrapper/core.clj:6:1)
   :at [clojure.lang.Compiler load Compiler.java 7526]}
  {:type java.lang.ClassNotFoundException
   :message com.bloomberglp.blpapi.CorrelationID
   :at [java.net.URLClassLoader findClass URLClassLoader.java 382]}]
 :trace
 [[java.net.URLClassLoader findClass URLClassLoader.java 382]
  [clojure.lang.DynamicClassLoader findClass DynamicClassLoader.java 69]
  [java.lang.ClassLoader loadClass ClassLoader.java 424]
  [clojure.lang.DynamicClassLoader loadClass DynamicClassLoader.java 77]
  [java.lang.ClassLoader loadClass ClassLoader.java 357]
...

在我看来,jar 没有放入 clojars - 我如何将它打包到我的 repo 中?或者,我怎样才能将它单独推送到clojars?

谢谢,

4

2 回答 2

2

您是否尝试从 clojars 下载您的库?使用jar命令解压 *.jar 文件并查看 lib 是否存在。

看看这个回购: https ://github.com/cloojure/tupelo-datomic

./resources目录中有一个jar文件: datomic-free-0.9.5661-everything.jar

您可能需要使用 in 的语法project.clj来使 clojars 上的 uberjar 格式正确。您可能需要在单独的 maven 兼容 repo 上发布依赖项 JAR 文件。选项包括:

于 2019-01-25T09:02:07.407 回答
0

我认为您需要将 jar 绑定为 project.clj 中的依赖项,资源路径告诉 uber jar 只包含该文件。

于 2019-01-25T15:22:27.107 回答