SBT Baugruppe - Deduplizierung praktisch error & Fehler Ausschließen
hey Leute, ich bin versuchen zu bauen ein JAR mit den Abhängigkeiten unter Verwendung sbt-Montage. Aber ich bin mit in diese Fehlermeldung wieder und wieder. Ich habe versucht mehrere verschiedene Dinge, aber ich Ende hier. Ich bin ziemlich neu im SBT und wollte ein bisschen Hilfe dabei. Hier sind die bauen.sbt & Montage.sbt-Dateien.
bauen.sbt
seq(assemblySettings: _*)
name := "StreamTest"
version := "1.0"
scalaVersion := "2.10.4"
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.1.0"
libraryDependencies += "org.apache.spark" % "spark-streaming-kinesis-asl_2.10" % "1.1.0"
Projekt - /Montage.sbt
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.11.2")
Wenn ich die sbt Baugruppe Befehl, ich bekomme folgenden Fehler.
[info] Including: joda-time-2.5.jar
[info] Checking every *.class/*.jar file's SHA-1.
[info] Merging files...
[warn] Merging 'about_files/LICENSE.txt' with strategy 'rename'
[warn] Merging 'about_files/NOTICE.txt' with strategy 'rename'
[warn] Merging 'META-INF/NOTICE.txt' with strategy 'rename'
[warn] Merging 'META-INF/NOTICE' with strategy 'rename'
[warn] Merging 'org/xerial/snappy/native/README' with strategy 'rename'
[warn] Merging 'META-INF/maven/org.xerial.snappy/snappy-java/LICENSE' with strategy 'rename'
[warn] Merging 'META-INF/license' with strategy 'rename'
[warn] Merging 'about.html' with strategy 'rename'
[warn] Merging 'META-INF/LICENSE.txt' with strategy 'rename'
[warn] Merging 'META-INF/README.txt' with strategy 'rename'
[warn] Merging 'LICENSE.txt' with strategy 'rename'
[warn] Merging 'META-INF/LICENSE' with strategy 'rename'
[warn] Merging 'META-INF/DEPENDENCIES' with strategy 'discard'
java.lang.RuntimeException: deduplicate: different file contents found in the following:
/Users/user/.ivy2/cache/org.eclipse.jetty.orbit/javax.transaction/orbits/javax.transaction-1.1.1.v201105210645.jar:META-INF/ECLIPSEF.RSA
/Users/user/.ivy2/cache/org.eclipse.jetty.orbit/javax.servlet/orbits/javax.servlet-3.0.0.v201112011016.jar:META-INF/ECLIPSEF.RSA
/Users/user/.ivy2/cache/org.eclipse.jetty.orbit/javax.mail.glassfish/orbits/javax.mail.glassfish-1.4.1.v201005082020.jar:META-INF/ECLIPSEF.RSA
/Users/user/.ivy2/cache/org.eclipse.jetty.orbit/javax.activation/orbits/javax.activation-1.1.0.v201105071233.jar:META-INF/ECLIPSEF.RSA
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:40)
at sbt.std.Transform$$anon$4.work(System.scala:63)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
at sbt.Execute.work(Execute.scala:235)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
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:745)
[error] (*:assembly) deduplicate: different file contents found in the following:
[error] /Users/user/.ivy2/cache/org.eclipse.jetty.orbit/javax.transaction/orbits/javax.transaction-1.1.1.v201105210645.jar:META-INF/ECLIPSEF.RSA
[error] /Users/user/.ivy2/cache/org.eclipse.jetty.orbit/javax.servlet/orbits/javax.servlet-3.0.0.v201112011016.jar:META-INF/ECLIPSEF.RSA
[error] /Users/user/.ivy2/cache/org.eclipse.jetty.orbit/javax.mail.glassfish/orbits/javax.mail.glassfish-1.4.1.v201005082020.jar:META-INF/ECLIPSEF.RSA
[error] /Users/user/.ivy2/cache/org.eclipse.jetty.orbit/javax.activation/orbits/javax.activation-1.1.0.v201105071233.jar:META-INF/ECLIPSEF.RSA
[error] Total time: 23 s, completed Nov 28, 2014 9:32:53 PM
sbt-version
0.13.6
BEARBEITEN
Nun nach etwas recherche habe ich eine änderung durchgeführt, um auszuschließen, alle Abhängigkeiten, die als Teil einer anderen Frage auf stackoverflow.
Aktualisiert bauen.sbt
seq(assemblySettings: _*)
name := "StreamTest"
version := "1.0"
scalaVersion := "2.10.4"
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.1.0"
libraryDependencies += "org.apache.spark" % "spark-streaming-kinesis-asl_2.10" % "1.1.0"
libraryDependencies ++= Seq(
exclude("org.eclipse.jetty.orbit", "javax.servlet").
exclude("org.eclipse.jetty.orbit", "javax.transaction").
exclude("org.eclipse.jetty.orbit", "javax.mail").
exclude("org.eclipse.jetty.orbit", "javax.activation").
exclude("commons-beanutils", "commons-beanutils-core").
exclude("commons-collections", "commons-collections").
exclude("commons-collections", "commons-collections").
exclude("com.esotericsoftware.minlog", "minlog")
)
Wenn ich den Befehl Baugruppe wieder, dies ist die Fehlermeldung, die ich bekomme.
build.sbt:14: error: not found: value exclude
exclude("org.eclipse.jetty.orbit", "javax.servlet").
^
EDIT 2:
Aktualisiert bauen.sbt
import AssemblyKeys._
seq(assemblySettings: _*)
name := "SparkStreamingKinesis"
version := "1.0"
scalaVersion := "2.10.4"
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.1.0"
libraryDependencies += "org.apache.spark" % "spark-streaming-kinesis-asl_2.10" % "1.1.0"
assemblyMergeStrategy in assembly := {
case PathList(ps @ _*) if ps.last endsWith ".RSA" => MergeStrategy.first
case x =>
val oldStrategy = (assemblyMergeStrategy in assembly).value
oldStrategy(x)
}
Nachdem Sie das update, hier ist die Fehlermeldung, die ich erhalte. Ich habe versucht zu tun, ein import von assemblyMergeStrategy, aber es sieht nicht aus wie eine Klasse, die ich importieren kann.
build.sbt:21: error: not found: value assemblyMergeStrategy
assemblyMergeStrategy in assembly := {
^
[error] Type error in expression
InformationsquelleAutor macha | 2014-11-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, diese auszuschließen, nur
ECLIPSEF.RSA
- Datei, weil ohne den ganzen Abhängigkeiten, die Ihre Bibliotheken benötigen, ist eine schlechte Idee 🙂Deduplizierung Fehler im build.sbt beim Bau einer fat jar mit sbt Baugruppe
Lösung für die neuesten
0.12.0
version der assembly-plugin:Projekt - /Montage.sbt
Sehen https://github.com/sbt/sbt-assembly#merge-strategy
P. S. Über
exclude
: Sie können nicht nur angebenexclude
im libraryDependencies - man braucht so etwas wie dieses:"log4j" % "log4j" % "1.2.15" exclude("javax.jms", "jms")
. Sehen Library Managementfügen Sie einfach
import AssemblyKeys._
hey dk14, ich habe es zu bauen.sbt-Datei, aber ich bekomme immer noch den gleichen Fehler.
Bewegen Sie auf die neueste plugin-version: 0.12.0 + sbt 0.13.6+. Wenn Sie ältere version der sbt - aktivieren Sie diese Antwort stackoverflow.com/questions/25925233/...
es funktioniert! vielen Dank 🙂
InformationsquelleAutor dk14
Mein problem war, ich hatte zwei Beziehungen hatte, die Abhängigkeiten zu den gleichen Baugruppen, aber unterschiedliche Versionen. Ich hatte einfach zu passen bis der Baugruppen.
InformationsquelleAutor Justin Pihony