2014-04-24 28 views
6

Otrzymuję następujący błąd podczas wykonywania ./sbt assembly w moim projekcie Scala. Widziałem pierwszy po dodaniu tych zależności do mojego build.sbt Mogę skompilować i uruchomić mój kod.Błąd podczas instalacji sbt - deduplikacja: inna zawartość pliku znajduje się poniżej:

libraryDependencies ++= Seq(
    "org.scalanlp" % "breeze_2.10" % "0.7", 
    "org.scalanlp" % "breeze-natives_2.10" % "0.7" 
) 


java.lang.RuntimeException: deduplicate: different file contents found in the following: 
/Users/ssimanta/.ivy2/cache/org.spire-math/spire_2.10/jars/spire_2.10-0.7.1.jar:scala/reflect/api/Liftable$$anon$1.class 
/Users/ssimanta/.ivy2/cache/org.spire-math/spire-macros_2.10/jars/spire-macros_2.10-0.7.1.jar:scala/reflect/api/Liftable$$anon$1.class 
    at sbtassembly.Plugin$Assembly$.sbtassembly$Plugin$Assembly$$applyStrategy$1(Plugin.scala:253) 
    at sbtassembly.Plugin$Assembly$$anonfun$15.apply(Plugin.scala:270) 
    at sbtassembly.Plugin$Assembly$$anonfun$15.apply(Plugin.scala:267) 
    at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251) 
    at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251) 
    at scala.collection.Iterator$class.foreach(Iterator.scala:727) 
    at scala.collection.AbstractIterator.foreach(Iterator.scala:1157) 
    at scala.collection.IterableLike$class.foreach(IterableLike.scala:72) 
    at scala.collection.AbstractIterable.foreach(Iterable.scala:54) 
    at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:251) 
    at scala.collection.AbstractTraversable.flatMap(Traversable.scala:105) 
    at sbtassembly.Plugin$Assembly$.applyStrategies(Plugin.scala:272) 
    at sbtassembly.Plugin$Assembly$.x$4$lzycompute$1(Plugin.scala:172) 
    at sbtassembly.Plugin$Assembly$.x$4$1(Plugin.scala:170) 
    at sbtassembly.Plugin$Assembly$.stratMapping$lzycompute$1(Plugin.scala:170) 
    at sbtassembly.Plugin$Assembly$.stratMapping$1(Plugin.scala:170) 
    at sbtassembly.Plugin$Assembly$.inputs$lzycompute$1(Plugin.scala:214) 
    at sbtassembly.Plugin$Assembly$.inputs$1(Plugin.scala:204) 
    at sbtassembly.Plugin$Assembly$.apply(Plugin.scala:230) 
    at sbtassembly.Plugin$Assembly$$anonfun$assemblyTask$1.apply(Plugin.scala:373) 
    at sbtassembly.Plugin$Assembly$$anonfun$assemblyTask$1.apply(Plugin.scala:370) 
    at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47) 
    at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:42) 
    at sbt.std.Transform$$anon$4.work(System.scala:64) 
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237) 
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237) 
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18) 
    at sbt.Execute.work(Execute.scala:244) 
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237) 
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237) 
    at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:160) 
    at sbt.CompletionService$$anon$2.call(CompletionService.scala:30) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:744) 
[error] (*:assembly) deduplicate: different file contents found in the following: 
[error] /Users/ssimanta/.ivy2/cache/org.spire-math/spire_2.10/jars/spire_2.10-0.7.1.jar:scala/reflect/api/Liftable$$anon$1.class 
[error] /Users/ssimanta/.ivy2/cache/org.spire-math/spire-macros_2.10/jars/spire-macros_2.10-0.7.1.jar:scala/reflect/api/Liftable$$anon$1.class 
[error] Total time: 2 s, completed Apr 24, 2014 5:39:55 PM 

Odpowiedz

1

Używam tego w moim build.sbt:

excludedJars in assembly <<= (fullClasspath in assembly) map { cp => 
cp filter {x => x.data.getName.matches("sbt.*") || x.data.getName.matches(".*macros.*")} 
} 
+0

Co dokładnie powinno być na miejscu wykluczonych Jarów? –

+0

Nie śledzę? Twój plik build.sbt powinien mieć gdzieś ten blok. Jeśli nadal dostaniesz błędy, zajrzyj do narzędzi deduplikacji w sbt-assembly – dlwh

+0

Rozwiązane, importowałem reposy sonatype dwa razy ... –

1

samą odpowiedź jak @dlwh ale ponieważ excludedJars jest przestarzała, użycie assemblyExcludedJars zamiast

0

while referening to this Doc dodałem poniżej urywek w moim projekcie co sprawia, że ​​pracuję dla mnie

assemblyMergeStrategy w złożeniu: = {
przypadku pathlist ("meta-INF" XS @ _ *) => MergeStrategy.discard
przypadku gdy X => MergeStrategy.first

}

w pliku build.sbt