我收到以下错误:
#error {
:cause org.apache.commons.codec.binary.Base32
:via
[{:type clojure.lang.Compiler$CompilerException
:message java.lang.ClassNotFoundException: org.apache.commons.codec.binary.Base32, compiling:(crypto/random.clj:1:1)
:at [clojure.lang.Compiler load Compiler.java 7239]}
{:type java.lang.ClassNotFoundException
:message org.apache.commons.codec.binary.Base32
:at [java.net.URLClassLoader$1 run URLClassLoader.java 372]}]
:trace
[[java.net.URLClassLoader$1 run URLClassLoader.java 372]
...
和
(use 'midje.repl)
CompilerException java.lang.IllegalArgumentException: No matching method: sha1Hex, compiling:(such/random.clj:17:3)
使用这些简单的依赖项:
[[org.clojure/clojure "1.7.0"]
[org.clojure/data.json "0.2.6"]
[ring/ring-core "1.4.0"]
[ring/ring-jetty-adapter "1.4.0"]
[ring/ring-defaults "0.2.0"]
[necessary-evil "2.0.0"]
[compojure "1.5.0"]
[midje "1.8.1" :exclusions [org.clojure/clojure]]]
我可以通过添加到deps修复它:
[commons-codec "1.6"]
[commons-codec "1.10"]
从我所看到的情况来看,需要1.6和1.10,只有当我不指定它时才会下载pom。如果我指定它,它然后下载jar,一切都很好。
没有直接(只有pom):
/c/working/tooling-alerts> lein deps
Picked up JAVA_TOOL_OPTIONS: -Duser.home=C:\Users\harrisky
(:repositories detected in user-level profiles! [:user]
See https://github.com/technomancy/leiningen/wiki/Repeatability)
Retrieving commons-codec/commons-codec/1.10/commons-codec-1.10.pom from
直接使用它(添加[commons-codec "1.10"]
后):
/c/working/tooling-alerts> lein deps
Picked up JAVA_TOOL_OPTIONS: -Duser.home=C:\Users\harrisky
(:repositories detected in user-level profiles! [:user]
See https://github.com/technomancy/leiningen/wiki/Repeatability)
Retrieving commons-codec/commons-codec/1.10/commons-codec-1.10.jar from
所以,在这种情况下,问题似乎与midje有关 - 但我猜这是嵌套依赖关系和lein的问题。即如果它是嵌套依赖项,则只下载pom而不是jar。直接指定时,也会下载jar。
其他人看到了这个问题,知道发生了什么事吗?
答案 0 :(得分:0)
您有许多令人困惑或冲突的依赖项。通常很聪明地看一下lein deps :tree
我重新安排了你的依赖关系,并为commons-codec添加了必要的邪恶排除,似乎解决了这个问题。
:dependencies [[org.clojure/clojure "1.7.0"]
[midje "1.8.1" :exclusions [org.clojure/clojure]]
[org.clojure/data.json "0.2.6"]
[ring/ring-core "1.4.0"]
[ring/ring-jetty-adapter "1.4.0"]
[ring/ring-defaults "0.2.0"]
[necessary-evil "2.0.0" :exclusions [commons-codec]]
[compojure "1.5.0"]