Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 莱宁根母公司>;儿童>;第三方库依赖项错误_Maven_Deployment_Clojure_Leiningen_Datomic - Fatal编程技术网

Maven 莱宁根母公司>;儿童>;第三方库依赖项错误

Maven 莱宁根母公司>;儿童>;第三方库依赖项错误,maven,deployment,clojure,leiningen,datomic,Maven,Deployment,Clojure,Leiningen,Datomic,我正在使用leiningen同时开发两个项目(请参见签出依赖项)。这是可行的,我已经达到了我想要部署这两个库的程度。假设它们是lib parent,它使用lib child 现在,我已经将lib child部署到clojars(lein deploy clojars)。但是,如果我现在将lib child作为项目依赖项包含在lib parent中,我将无法加载lib child,因为其中一个依赖项(Datomic和它使用的com.google.common.cache.cache)没有加载。在r

我正在使用leiningen同时开发两个项目(请参见签出依赖项)。这是可行的,我已经达到了我想要部署这两个库的程度。假设它们是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)一个一般的莱宁根依赖性问题还是ii)一个Datomic没有获得所有依赖性的问题?我正在使用
[com.datomic/datomic-free“0.8.4143”:排除[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)
user=>(需要'lib child.plugin)
SLF4J:未能加载类“org.SLF4J.impl.StaticMDCBinder”。
SLF4J:默认为无操作MDCAdapter实现。
SLF4J:参见http://www.slf4j.org/codes.html#no_static_mdc_binder 详情请参阅。
ClassNotFoundException com.google.common.cache.cache java.net.URLClassLoader$1.run(URLClassLoader.java:366)
用户=>(pst*e)
例外情况初始化错误
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)
原因:
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_uuuinit.uuu init0(:-1)
datomic.cache\uuu init。(:-1)
java.lang.Class.forName0(Class.java:-2)

谢谢

好的,修复了这个问题。删除了我在lib child项目中使用的Datomic声明中的所有
:排除项。感谢@hyPiRion on#leiningen@irc.freenode.org

您确认生成的pom.xml中存在lib-child-datomic依赖项了吗?另外,当您在lib父项目中运行
lein-deps:tree
时,是否会看到
[com.google.guava/guava“14.0.1”]
?@Jared314,您好。是的,
leindeps:tree
yields[com.google.guava/guava“r09”]。但这是在[com.datomic/datomic“0.8.3335”下,而不是[com.datomic/datomic-free“0.8.4143”。。。。