Clojure / Leiningen-将jar资源打包到clojars中

时间:2019-01-24 18:58:25

标签: clojure leiningen clojars

我有一个类似于Deploy 3rd-party jar to clojars?

的问题

我已经使用lein deploy将一个小项目推入了clojars。该项目依赖于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]
...

在我看来,罐子没有放入Clojars中-如何将其包装在我的仓库中?或者,如何将其分别推入clojars?

谢谢

2 个答案:

答案 0 :(得分:1)

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

看看这个仓库:https://github.com/cloojure/tupelo-datomic

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

您可能需要使用project.clj中的语法来使Clojars上的uberjar正确形成。您可能需要在独立的Maven兼容存储库上发布依赖关系JAR文件。选项包括:

答案 1 :(得分:0)

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