Clojure/Leiningen-将jar资源打包到Clojar中
我有一个类似的问题 我使用Clojure/Leiningen-将jar资源打包到Clojar中,clojure,leiningen,clojars,Clojure,Leiningen,Clojars,我有一个类似的问题 我使用leindeploy将一个小项目推到clojars中。该项目依赖于一个jar依赖项,我只是将它放在本地驱动器上的一个文件夹中,并导入到我的:资源路径中,如下所示: (defproject cljblpapiwrapper "0.1.0-SNAPSHOT" :description "" :url "" :license {:name "" :url ""} :dependencies [[org.clojure/clojure "1.9.0"]] :
leindeploy
将一个小项目推到clojars中。该项目依赖于一个jar依赖项,我只是将它放在本地驱动器上的一个文件夹中,并导入到我的:资源路径中,如下所示:
(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 repo时,它无法在jar repo中找到类。我得到了这个线索:
#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
谢谢,你试过从clojars下载你的库吗?使用jar
命令解压*.jar文件并查看库是否存在
看看这个回购协议:
在/resources
目录中有一个jar文件:datomic-free-0.9.5661-everything.jar
您可能需要使用project.clj
中的语法,以使clojars上的uberjar格式正确。您可能需要在一个单独的maven兼容的repo上发布依赖项JAR文件。选择包括:
- -由REPL播客的主机创建
- AWS S3-这方面有很多帮助
您是否尝试从clojars下载您的库?使用jar
命令解压*.jar文件并查看库是否存在
看看这个回购协议:
在/resources
目录中有一个jar文件:datomic-free-0.9.5661-everything.jar
您可能需要使用project.clj
中的语法,以使clojars上的uberjar格式正确。您可能需要在一个单独的maven兼容的repo上发布依赖项JAR文件。选择包括:
- -由REPL播客的主机创建
- AWS S3-这方面有很多帮助
我认为您需要将jar作为依赖项绑定到您的项目中。clj,resource path告诉uber jar只包含该文件 我认为您需要将jar作为依赖项绑定到您的项目中。clj,resource path告诉uber jar只包含该文件 @AlanThompson谢谢-我解包了,图书馆就在那里(放在最上面的文件夹中,例如我提取的地方)。你知道我应该如何正确引用它吗?@AlanThompson谢谢你-我解包了,图书馆就在那里(放在最上面的文件夹中,例如我提取的地方)。你知道我应该如何正确地引用它吗?我最终使用在上找到的脚本将jar打包到clojars repo中。谢谢你的帮助,我最终用我在网站上找到的一个脚本将这个罐子打包成了clojars repo。谢谢你的帮助