2016-08-07 9 views
0

Я получаю следующее сообщение об ошибке:Clojure зависимостей/Leiningen не скачивая банки, если вложенные

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

я могу исправить, добавив к отпечаткам:

[commons-codec "1.6"] 
[commons-codec "1.10"] 

Из того, что я вижу, необходимо 1.6 и 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.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 в этом прецедентного но я Думаю, это больше проблема с вложенными зависимостями и лейн. Т.е. если это вложенная зависимость, загружается только pom, а не банка. При прямом указании банер также загружается.

Кто-нибудь еще видел эту проблему и знал, что случилось?

+0

Вы посмотрели на 'lein deps: tree'? need-evil использует commons-codec 1.4, поэтому я думаю, что это может быть проблемой? – Asthor

ответ

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"]