Решите ту же проблему, используя [org.clojure/clojure "1.4.0"] и [incanter "1.4.1"]. У Def было ощущение затенения пути к классам.
Сделал следующее в ответ, чтобы выяснить, из какой банки исходил ConcurrencyUtils:
(.getResource edu.emory.mathcs.utils.ConcurrencyUtils
"/edu/emory/mathcs/utils/ConcurrencyUtils.class")
Это указывало на jplasma. Конечно же, у jplasma есть собственная копия этого класса, в которой отсутствуют различные методы, в том числе getThreadsBeginN_2D.
Глядя на deps («lein pom», за которым следует «mvn dependency:tree»), мы увидели, что это зависимость, вытащенная incanter 1.4.1:
[INFO] | +- incanter:incanter-core:jar:1.4.1:compile
[INFO] | | +- org.clojure:math.combinatorics:jar:0.0.3:compile
[INFO] | | \- net.sourceforge.parallelcolt:parallelcolt:jar:0.10.0:compile
[INFO] | | +- net.sourceforge.jplasma:jplasma:jar:1.2.0:compile
Изменена запись для incanter в project.clj, чтобы исключить jplasma:
[incanter "1.4.1"
:exclusions [net.sourceforge.jplasma/jplasma]]
Это получает ConcurrencyUtils от jtransforms (следовательно, все еще не от parallelcolt), но, по крайней мере, устраняет проблему с матрицей:
=> (matrix [[1 2 3] [4 5 6] [7 8 9]])
[1.0000 2.0000 3.0000
4.0000 5.0000 6.0000
7.0000 8.0000 9.0000]
Не уверен, каково влияние исключения. Существует более старая версия jplasma на clojars, которая не нарушает матрицу, вы можете попробовать добавить ее в свой проект.clj:
[incanter/jplasma "0.9.4"]
Тем не менее, эти deps явно нуждаются в правильной сортировке кем-то, кто их понимает.
person
u-phoria
schedule
02.01.2013
project.clj
? - person Alex Ott   schedule 30.12.2012