Clojure / Leiningen - пакет ресурсов jar в clojars - PullRequest
0 голосов
/ 24 января 2019

У меня есть вопрос, похожий на Развернуть стороннюю флягу в clojars?

Я выдвинул небольшой проект в 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 в другом проекте, он не может найти классы в репозитории.Я получаю этот след:

#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?

спасибо,

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Я думаю, вам нужно связать jar как зависимость в вашем project.clj, путь к ресурсу говорит, что uber jar просто включает файл.

0 голосов
/ 25 января 2019

Вы пытались загрузить свою библиотеку из clojars? Используйте jar, чтобы распаковать файл * .jar и посмотреть, есть ли там библиотека.

Посмотрите на этот репо: https://github.com/cloojure/tupelo-datomic

В директории ./resources есть файл jar: datomic-free-0.9.5661-everything.jar

Возможно, вам придется поиграться с синтаксисом в project.clj, чтобы правильно сформировать uberjar на clojars. Вам может потребоваться опубликовать JAR-файл зависимостей в отдельном maven-совместимом репозитории. Опции включают в себя:

  • Deps.co - Создано ведущим подкаста REPL
  • AWS S3 - есть плагин lein , который поможет с этим
...