簡體   English   中英

Leiningen父母>子女>第三方圖書館依賴性錯誤

[英]Leiningen Parent > Child > 3rd-Party Library Dependency Errors

我正在使用leiningen同時開發2個項目(請參見此處的 Checkout Dependencies )。 那行得通,我已經到了要部署兩個庫的地步。 假設它們是lib-parent ,它使用lib-child

現在,我已經將lib-child部署到clojars( lein deploy clojars )。 但是,如果現在我將lib-child作為項目依賴項包含在lib-parent中 ,則無法加載lib-child,因為其中之一依賴項(Datomic,並且使用com.google.common.cache.Cache )不會加載。 在repl上運行(require 'lib-child.plugin)會給我ClassNotFoundException:com.google.common.cache.Cache

這是i)一個普遍的leiningen依賴問題,還是ii) Datomic沒有完全依賴它的問題? 我正在使用[com.datomic/datomic-free "0.8.4143" :exclusions [org.slf4j/slf4j-nop org.slf4j/log4j-over-slf4j]]

user=> (require 'lib-child.plugin)
SLF4J: Failed to load class "org.slf4j.impl.StaticMDCBinder".
SLF4J: Defaulting to no-operation MDCAdapter implementation.
SLF4J: See http://www.slf4j.org/codes.html#no_static_mdc_binder for further details.

ClassNotFoundException com.google.common.cache.Cache  java.net.URLClassLoader$1.run (URLClassLoader.java:366)
user=> (pst *e)
ExceptionInInitializerError 
        java.lang.Class.forName0 (Class.java:-2)
        java.lang.Class.forName (Class.java:270)
        clojure.lang.RT.loadClassForName (RT.java:2098)
        clojure.lang.RT.load (RT.java:430)
        clojure.lang.RT.load (RT.java:411)
        clojure.core/load/fn--5018 (core.clj:5530)
        clojure.core/load (core.clj:5529)
        clojure.core/load-one (core.clj:5336)
        clojure.core/load-lib/fn--4967 (core.clj:5375)
        clojure.core/load-lib (core.clj:5374)
        clojure.core/apply (core.clj:619)
        clojure.core/load-libs (core.clj:5413)
Caused by:
ClassNotFoundException com.google.common.cache.Cache
        java.net.URLClassLoader$1.run (URLClassLoader.java:366)
        java.net.URLClassLoader$1.run (URLClassLoader.java:355)
        java.security.AccessController.doPrivileged (AccessController.java:-2)
        java.net.URLClassLoader.findClass (URLClassLoader.java:354)
        java.lang.ClassLoader.loadClass (ClassLoader.java:424)
        sun.misc.Launcher$AppClassLoader.loadClass (Launcher.java:308)
        java.lang.ClassLoader.loadClass (ClassLoader.java:357)
        java.lang.Class.forName0 (Class.java:-2)
        java.lang.Class.forName (Class.java:190)
        datomic.cache__init.__init0 (:-1)
        datomic.cache__init.<clinit> (:-1)
        java.lang.Class.forName0 (Class.java:-2)

謝謝

好,解決這個問題。 刪除了我在lib-child項目中使用的Datomic聲明中的所有:exclusions 感謝#leiningen @ irc.freenode.org上的@hyPiRion。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM