3
votes

I'm aware this question has been asked (and answered) numerous times, but the existing answers do not address my case.

I am trying to build the DataStax spark-cassandra-connector (tag v1.5.0-M3) as per this tutorial

./sbt/sbt assembly

but I get the following errors

java.lang.RuntimeException: deduplicate: different file contents found in the following:
/Users/me/.ivy2/cache/io.netty/netty/bundles/netty-3.8.0.Final.jar:META-INF/jboss-beans.xml
/Users/me/.ivy2/cache/org.jboss.netty/netty/bundles/netty-3.2.2.Final.jar:META-INF/jboss-beans.xml
    at sbtassembly.Assembly$.sbtassembly$Assembly$$applyStrategy$1(Assembly.scala:106)
    at sbtassembly.Assembly$$anonfun$13.apply(Assembly.scala:123)
    at sbtassembly.Assembly$$anonfun$13.apply(Assembly.scala:120)
    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.Assembly$.applyStrategies(Assembly.scala:125)
    at sbtassembly.Assembly$.x$1$lzycompute$1(Assembly.scala:25)
    at sbtassembly.Assembly$.x$1$1(Assembly.scala:23)
    at sbtassembly.Assembly$.stratMapping$lzycompute$1(Assembly.scala:23)
    at sbtassembly.Assembly$.stratMapping$1(Assembly.scala:23)
    at sbtassembly.Assembly$.inputs$lzycompute$1(Assembly.scala:67)
    at sbtassembly.Assembly$.inputs$1(Assembly.scala:57)
    at sbtassembly.Assembly$.apply(Assembly.scala:83)
    at sbtassembly.Assembly$$anonfun$assemblyTask$1.apply(Assembly.scala:226)
    at sbtassembly.Assembly$$anonfun$assemblyTask$1.apply(Assembly.scala:223)
    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:266)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
java.lang.RuntimeException: deduplicate: different file contents found in the following:
/Users/me/.ivy2/cache/org.apache.spark/spark-network-common_2.10/jars/spark-network-common_2.10-1.5.1.jar:META-INF/maven/com.google.guava/guava/pom.properties
/Users/me/.ivy2/cache/com.google.guava/guava/bundles/guava-16.0.1.jar:META-INF/maven/com.google.guava/guava/pom.properties
    at sbtassembly.Assembly$.sbtassembly$Assembly$$applyStrategy$1(Assembly.scala:106)
    at sbtassembly.Assembly$$anonfun$13.apply(Assembly.scala:123)
    at sbtassembly.Assembly$$anonfun$13.apply(Assembly.scala:120)
    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.Assembly$.applyStrategies(Assembly.scala:125)
    at sbtassembly.Assembly$.x$1$lzycompute$1(Assembly.scala:25)
    at sbtassembly.Assembly$.x$1$1(Assembly.scala:23)
    at sbtassembly.Assembly$.stratMapping$lzycompute$1(Assembly.scala:23)
    at sbtassembly.Assembly$.stratMapping$1(Assembly.scala:23)
    at sbtassembly.Assembly$.inputs$lzycompute$1(Assembly.scala:67)
    at sbtassembly.Assembly$.inputs$1(Assembly.scala:57)
    at sbtassembly.Assembly$.apply(Assembly.scala:83)
    at sbtassembly.Assembly$$anonfun$assemblyTask$1.apply(Assembly.scala:226)
    at sbtassembly.Assembly$$anonfun$assemblyTask$1.apply(Assembly.scala:223)
    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:266)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
[error] (spark-cassandra-connector-java/*:assembly) deduplicate: different file contents found in the following:
[error] /Users/me/.ivy2/cache/io.netty/netty/bundles/netty-3.8.0.Final.jar:META-INF/jboss-beans.xml
[error] /Users/me/.ivy2/cache/org.jboss.netty/netty/bundles/netty-3.2.2.Final.jar:META-INF/jboss-beans.xml
[error] (spark-cassandra-connector/*:assembly) deduplicate: different file contents found in the following:
[error] /Users/me/.ivy2/cache/org.apache.spark/spark-network-common_2.10/jars/spark-network-common_2.10-1.5.1.jar:META-INF/maven/com.google.guava/guava/pom.properties
[error] /Users/me/.ivy2/cache/com.google.guava/guava/bundles/guava-16.0.1.jar:META-INF/maven/com.google.guava/guava/pom.properties
[error] Total time: 44 s, completed 10-Dec-2015 16:22:01

Any of the suggested answers I have read (such as this one) refer to changes required in the build.sbt file, but in my case I have no such file. In the project directory I have

.
├── BuildUtil.scala
├── CassandraSparkBuild.scala
├── Publish.scala
├── Settings.scala
├── SparkInstaller.scala
├── Versions.scala
├── build.properties
├── plugins.sbt
├── project
└── target

2 directories, 8 files

So I don't know which file(s) to edit and what edits are necessary. I am on OSX and have the following versions installed

  • Spark 1.5.2
  • Java 1.8.0_45
  • Scala 2.11.7
  • sbt 0.13.9

UPDATE

If I follow the instruction here and build for Scala 2.11 I get the following prompt

$ sbt -Dscala-2.11=true
[info] Loading project definition from /usr/local/share/spark-cassandra-connector/project
[info] Updating {file:/usr/local/share/spark-cassandra-connector/project/}spark-cassandra-connector-build...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
Using releases: https://oss.sonatype.org/service/local/staging/deploy/maven2 for releases
Using snapshots: https://oss.sonatype.org/content/repositories/snapshots for snapshots

  Scala: 2.11.7
  Scala Binary: 2.11
  Java: target=1.7 user=1.8.0_45

[info] Set current project to root (in build file:/usr/local/share/spark-cassandra-connector/)
 SBT   39dcadbe40e833b610357ce84811201f03d8f350  root 

Dependency Graph

Below is the result of using sbt-dependency-graph as per @AlexeyRomanovs suggestion

[info] default:project_2.10:0.1-SNAPSHOT [S]
[info]   +-com.scalapenos:sbt-prompt:0.2.1
[info]   | +-com.typesafe.sbt:sbt-git:0.6.4
[info]   |   +-org.eclipse.jgit:org.eclipse.jgit.pgm:3.3.2.201404171909-r
[info]   |     +-args4j:args4j:2.0.12
[info]   |     +-org.apache.commons:commons-compress:1.6
[info]   |     | +-org.tukaani:xz:1.4
[info]   |     |
[info]   |     +-org.eclipse.jgit:org.eclipse.jgit.archive:3.3.2.201404171909-r
[info]   |     | +-org.apache.commons:commons-compress:1.6
[info]   |     | | +-org.tukaani:xz:1.4
[info]   |     | |
[info]   |     | +-org.eclipse.jgit:org.eclipse.jgit:3.3.2.201404171909-r
[info]   |     | | +-com.googlecode.javaewah:JavaEWAH:0.7.9
[info]   |     | | +-com.jcraft:jsch:0.1.50
[info]   |     | | +-org.apache.httpcomponents:httpclient:4.1.3 (evicted by: 4.2.6)
[info]   |     | | | +-commons-codec:commons-codec:1.4 (evicted by: 1.8)
[info]   |     | | | +-commons-codec:commons-codec:1.6 (evicted by: 1.8)
[info]   |     | | | +-commons-codec:commons-codec:1.8
[info]   |     | | | +-commons-logging:commons-logging:1.1.1
[info]   |     | | | +-org.apache.httpcomponents:httpcore:4.1.4 (evicted by: 4.2.5)
[info]   |     | | | +-org.apache.httpcomponents:httpcore:4.2.5
[info]   |     | | |
[info]   |     | | +-org.apache.httpcomponents:httpclient:4.2.6
[info]   |     | |   +-commons-codec:commons-codec:1.6 (evicted by: 1.8)
[info]   |     | |   +-commons-codec:commons-codec:1.8
[info]   |     | |   +-commons-logging:commons-logging:1.1.1
[info]   |     | |   +-org.apache.httpcomponents:httpcore:4.2.5
[info]   |     | |
[info]   |     | +-org.osgi:org.osgi.core:4.3.1
[info]   |     |
[info]   |     +-org.eclipse.jgit:org.eclipse.jgit.ui:3.3.2.201404171909-r
[info]   |     | +-org.eclipse.jgit:org.eclipse.jgit:3.3.2.201404171909-r
[info]   |     |   +-com.googlecode.javaewah:JavaEWAH:0.7.9
[info]   |     |   +-com.jcraft:jsch:0.1.50
[info]   |     |   +-org.apache.httpcomponents:httpclient:4.1.3 (evicted by: 4.2.6)
[info]   |     |   | +-commons-codec:commons-codec:1.4 (evicted by: 1.8)
[info]   |     |   | +-commons-codec:commons-codec:1.6 (evicted by: 1.8)
[info]   |     |   | +-commons-codec:commons-codec:1.8
[info]   |     |   | +-commons-logging:commons-logging:1.1.1
[info]   |     |   | +-org.apache.httpcomponents:httpcore:4.1.4 (evicted by: 4.2.5)
[info]   |     |   | +-org.apache.httpcomponents:httpcore:4.2.5
[info]   |     |   |
[info]   |     |   +-org.apache.httpcomponents:httpclient:4.2.6
[info]   |     |     +-commons-codec:commons-codec:1.6 (evicted by: 1.8)
[info]   |     |     +-commons-codec:commons-codec:1.8
[info]   |     |     +-commons-logging:commons-logging:1.1.1
[info]   |     |     +-org.apache.httpcomponents:httpcore:4.2.5
[info]   |     |
[info]   |     +-org.eclipse.jgit:org.eclipse.jgit:3.3.2.201404171909-r
[info]   |       +-com.googlecode.javaewah:JavaEWAH:0.7.9
[info]   |       +-com.jcraft:jsch:0.1.50
[info]   |       +-org.apache.httpcomponents:httpclient:4.1.3 (evicted by: 4.2.6)
[info]   |       | +-commons-codec:commons-codec:1.4 (evicted by: 1.8)
[info]   |       | +-commons-codec:commons-codec:1.6 (evicted by: 1.8)
[info]   |       | +-commons-codec:commons-codec:1.8
[info]   |       | +-commons-logging:commons-logging:1.1.1
[info]   |       | +-org.apache.httpcomponents:httpcore:4.1.4 (evicted by: 4.2.5)
[info]   |       | +-org.apache.httpcomponents:httpcore:4.2.5
[info]   |       |
[info]   |       +-org.apache.httpcomponents:httpclient:4.2.6
[info]   |         +-commons-codec:commons-codec:1.6 (evicted by: 1.8)
[info]   |         +-commons-codec:commons-codec:1.8
[info]   |         +-commons-logging:commons-logging:1.1.1
[info]   |         +-org.apache.httpcomponents:httpcore:4.2.5
[info]   |
[info]   +-com.typesafe.sbt:sbt-git:0.6.4
[info]   | +-org.eclipse.jgit:org.eclipse.jgit.pgm:3.3.2.201404171909-r
[info]   |   +-args4j:args4j:2.0.12
[info]   |   +-org.apache.commons:commons-compress:1.6
[info]   |   | +-org.tukaani:xz:1.4
[info]   |   |
[info]   |   +-org.eclipse.jgit:org.eclipse.jgit.archive:3.3.2.201404171909-r
[info]   |   | +-org.apache.commons:commons-compress:1.6
[info]   |   | | +-org.tukaani:xz:1.4
[info]   |   | |
[info]   |   | +-org.eclipse.jgit:org.eclipse.jgit:3.3.2.201404171909-r
[info]   |   | | +-com.googlecode.javaewah:JavaEWAH:0.7.9
[info]   |   | | +-com.jcraft:jsch:0.1.50
[info]   |   | | +-org.apache.httpcomponents:httpclient:4.1.3 (evicted by: 4.2.6)
[info]   |   | | | +-commons-codec:commons-codec:1.4 (evicted by: 1.8)
[info]   |   | | | +-commons-codec:commons-codec:1.6 (evicted by: 1.8)
[info]   |   | | | +-commons-codec:commons-codec:1.8
[info]   |   | | | +-commons-logging:commons-logging:1.1.1
[info]   |   | | | +-org.apache.httpcomponents:httpcore:4.1.4 (evicted by: 4.2.5)
[info]   |   | | | +-org.apache.httpcomponents:httpcore:4.2.5
[info]   |   | | |
[info]   |   | | +-org.apache.httpcomponents:httpclient:4.2.6
[info]   |   | |   +-commons-codec:commons-codec:1.6 (evicted by: 1.8)
[info]   |   | |   +-commons-codec:commons-codec:1.8
[info]   |   | |   +-commons-logging:commons-logging:1.1.1
[info]   |   | |   +-org.apache.httpcomponents:httpcore:4.2.5
[info]   |   | |
[info]   |   | +-org.osgi:org.osgi.core:4.3.1
[info]   |   |
[info]   |   +-org.eclipse.jgit:org.eclipse.jgit.ui:3.3.2.201404171909-r
[info]   |   | +-org.eclipse.jgit:org.eclipse.jgit:3.3.2.201404171909-r
[info]   |   |   +-com.googlecode.javaewah:JavaEWAH:0.7.9
[info]   |   |   +-com.jcraft:jsch:0.1.50
[info]   |   |   +-org.apache.httpcomponents:httpclient:4.1.3 (evicted by: 4.2.6)
[info]   |   |   | +-commons-codec:commons-codec:1.4 (evicted by: 1.8)
[info]   |   |   | +-commons-codec:commons-codec:1.6 (evicted by: 1.8)
[info]   |   |   | +-commons-codec:commons-codec:1.8
[info]   |   |   | +-commons-logging:commons-logging:1.1.1
[info]   |   |   | +-org.apache.httpcomponents:httpcore:4.1.4 (evicted by: 4.2.5)
[info]   |   |   | +-org.apache.httpcomponents:httpcore:4.2.5
[info]   |   |   |
[info]   |   |   +-org.apache.httpcomponents:httpclient:4.2.6
[info]   |   |     +-commons-codec:commons-codec:1.6 (evicted by: 1.8)
[info]   |   |     +-commons-codec:commons-codec:1.8
[info]   |   |     +-commons-logging:commons-logging:1.1.1
[info]   |   |     +-org.apache.httpcomponents:httpcore:4.2.5
[info]   |   |
[info]   |   +-org.eclipse.jgit:org.eclipse.jgit:3.3.2.201404171909-r
[info]   |     +-com.googlecode.javaewah:JavaEWAH:0.7.9
[info]   |     +-com.jcraft:jsch:0.1.50
[info]   |     +-org.apache.httpcomponents:httpclient:4.1.3 (evicted by: 4.2.6)
[info]   |     | +-commons-codec:commons-codec:1.4 (evicted by: 1.8)
[info]   |     | +-commons-codec:commons-codec:1.6 (evicted by: 1.8)
[info]   |     | +-commons-codec:commons-codec:1.8
[info]   |     | +-commons-logging:commons-logging:1.1.1
[info]   |     | +-org.apache.httpcomponents:httpcore:4.1.4 (evicted by: 4.2.5)
[info]   |     | +-org.apache.httpcomponents:httpcore:4.2.5
[info]   |     |
[info]   |     +-org.apache.httpcomponents:httpclient:4.2.6
[info]   |       +-commons-codec:commons-codec:1.6 (evicted by: 1.8)
[info]   |       +-commons-codec:commons-codec:1.8
[info]   |       +-commons-logging:commons-logging:1.1.1
[info]   |       +-org.apache.httpcomponents:httpcore:4.2.5
[info]   |
[info]   +-com.typesafe.sbt:sbt-scalariform:1.3.0
[info]   | +-org.scalariform:scalariform_2.10:0.1.4 [S]
[info]   |
[info]   +-net.virtual-void:sbt-dependency-graph:0.8.0
[info]   | +-com.github.mdr:ascii-graphs_2.10:0.0.3 [S]
[info]   |
[info]   +-org.scalastyle:scalastyle-sbt-plugin:0.6.0
[info]   | +-org.scalastyle:scalastyle_2.10:0.6.0 [S]
[info]   |   +-com.danieltrinh:scalariform_2.10:0.1.5 [S]
[info]   |   +-com.typesafe:config:1.2.0
[info]   |
[info]   +-org.scoverage:sbt-scoverage:1.0.4
[info]   | +-org.scoverage:scalac-scoverage-plugin_2.10:1.0.4 [S]
[info]   |
[info]   +-org.spark-packages:sbt-spark-package:0.2.3
[info]   | +-com.eed3si9n:sbt-assembly:0.12.0
[info]   | +-org.apache.directory.studio:org.apache.commons.codec:1.8
[info]   | | +-commons-codec:commons-codec:1.8
[info]   | |
[info]   | +-org.scalaj:scalaj-http_2.10:1.1.4 [S]
[info]   |
[info]   +-org.typelevel:sbt-typelevel:0.3.1
[info]     +-com.eed3si9n:sbt-buildinfo:0.3.2
[info]     +-com.github.gseitz:sbt-release:0.8.4
[info]     +-com.typesafe.sbt:sbt-pgp:0.8.2
[info]     | +-com.jsuereth:gpg-library_2.10:0.8.2 [S]
[info]     | | +-net.databinder:dispatch-http_2.10:0.8.10 [S]
[info]     | | | +-net.databinder:dispatch-core_2.10:0.8.10 [S]
[info]     | | | | +-org.apache.httpcomponents:httpclient:4.1.3 (evicted by: 4.2.6)
[info]     | | | | | +-commons-codec:commons-codec:1.4 (evicted by: 1.8)
[info]     | | | | | +-commons-codec:commons-codec:1.6 (evicted by: 1.8)
[info]     | | | | | +-commons-codec:commons-codec:1.8
[info]     | | | | | +-commons-logging:commons-logging:1.1.1
[info]     | | | | | +-org.apache.httpcomponents:httpcore:4.1.4 (evicted by: 4.2.5)
[info]     | | | | | +-org.apache.httpcomponents:httpcore:4.2.5
[info]     | | | | |
[info]     | | | | +-org.apache.httpcomponents:httpclient:4.2.6
[info]     | | | |   +-commons-codec:commons-codec:1.6 (evicted by: 1.8)
[info]     | | | |   +-commons-codec:commons-codec:1.8
[info]     | | | |   +-commons-logging:commons-logging:1.1.1
[info]     | | | |   +-org.apache.httpcomponents:httpcore:4.2.5
[info]     | | | |
[info]     | | | +-net.databinder:dispatch-futures_2.10:0.8.10 [S]
[info]     | | | | +-org.scala-lang:scala-actors:2.10.2 [S]
[info]     | | | |
[info]     | | | +-org.apache.httpcomponents:httpclient:4.1.3 (evicted by: 4.2.6)
[info]     | | | | +-commons-codec:commons-codec:1.4 (evicted by: 1.8)
[info]     | | | | +-commons-codec:commons-codec:1.6 (evicted by: 1.8)
[info]     | | | | +-commons-codec:commons-codec:1.8
[info]     | | | | +-commons-logging:commons-logging:1.1.1
[info]     | | | | +-org.apache.httpcomponents:httpcore:4.1.4 (evicted by: 4.2.5)
[info]     | | | | +-org.apache.httpcomponents:httpcore:4.2.5
[info]     | | | |
[info]     | | | +-org.apache.httpcomponents:httpclient:4.2.6
[info]     | | |   +-commons-codec:commons-codec:1.6 (evicted by: 1.8)
[info]     | | |   +-commons-codec:commons-codec:1.8
[info]     | | |   +-commons-logging:commons-logging:1.1.1
[info]     | | |   +-org.apache.httpcomponents:httpcore:4.2.5
[info]     | | |
[info]     | | +-org.bouncycastle:bcpg-jdk15on:1.49
[info]     | |   +-org.bouncycastle:bcprov-jdk15on:1.49
[info]     | |
[info]     | +-net.databinder:dispatch-http_2.10:0.8.10 [S]
[info]     |   +-net.databinder:dispatch-core_2.10:0.8.10 [S]
[info]     |   | +-org.apache.httpcomponents:httpclient:4.1.3 (evicted by: 4.2.6)
[info]     |   | | +-commons-codec:commons-codec:1.4 (evicted by: 1.8)
[info]     |   | | +-commons-codec:commons-codec:1.6 (evicted by: 1.8)
[info]     |   | | +-commons-codec:commons-codec:1.8
[info]     |   | | +-commons-logging:commons-logging:1.1.1
[info]     |   | | +-org.apache.httpcomponents:httpcore:4.1.4 (evicted by: 4.2.5)
[info]     |   | | +-org.apache.httpcomponents:httpcore:4.2.5
[info]     |   | |
[info]     |   | +-org.apache.httpcomponents:httpclient:4.2.6
[info]     |   |   +-commons-codec:commons-codec:1.6 (evicted by: 1.8)
[info]     |   |   +-commons-codec:commons-codec:1.8
[info]     |   |   +-commons-logging:commons-logging:1.1.1
[info]     |   |   +-org.apache.httpcomponents:httpcore:4.2.5
[info]     |   |
[info]     |   +-net.databinder:dispatch-futures_2.10:0.8.10 [S]
[info]     |   | +-org.scala-lang:scala-actors:2.10.2 [S]
[info]     |   |
[info]     |   +-org.apache.httpcomponents:httpclient:4.1.3 (evicted by: 4.2.6)
[info]     |   | +-commons-codec:commons-codec:1.4 (evicted by: 1.8)
[info]     |   | +-commons-codec:commons-codec:1.6 (evicted by: 1.8)
[info]     |   | +-commons-codec:commons-codec:1.8
[info]     |   | +-commons-logging:commons-logging:1.1.1
[info]     |   | +-org.apache.httpcomponents:httpcore:4.1.4 (evicted by: 4.2.5)
[info]     |   | +-org.apache.httpcomponents:httpcore:4.2.5
[info]     |   |
[info]     |   +-org.apache.httpcomponents:httpclient:4.2.6
[info]     |     +-commons-codec:commons-codec:1.6 (evicted by: 1.8)
[info]     |     +-commons-codec:commons-codec:1.8
[info]     |     +-commons-logging:commons-logging:1.1.1
[info]     |     +-org.apache.httpcomponents:httpcore:4.2.5
[info]     |
[info]     +-com.typesafe:sbt-mima-plugin:0.1.6
[info]     | +-com.typesafe:mima-reporter_2.10:0.1.6 [S]
[info]     |   +-com.typesafe:config:1.0.0 (evicted by: 1.2.0)
[info]     |   +-com.typesafe:config:1.2.0
[info]     |   +-com.typesafe:mima-core_2.10:0.1.6 [S]
[info]     |   | +-org.scala-lang:scala-compiler:2.10.2 [S]
[info]     |   |   +-org.scala-lang:scala-reflect:2.10.2 [S]
[info]     |   |
[info]     |   +-org.scala-lang:scala-actors:2.10.2 [S]
[info]     |   +-org.scala-lang:scala-swing:2.10.2 [S]
[info]     |
[info]     +-net.virtual-void:sbt-dependency-graph:0.7.4 (evicted by: 0.8.0)
[info]     +-net.virtual-void:sbt-dependency-graph:0.8.0
[info]     | +-com.github.mdr:ascii-graphs_2.10:0.0.3 [S]
[info]     |
[info]     +-org.xerial.sbt:sbt-sonatype:0.2.1
[info]       +-org.apache.httpcomponents:httpclient:4.2.6
[info]         +-commons-codec:commons-codec:1.6 (evicted by: 1.8)
[info]         +-commons-codec:commons-codec:1.8
[info]         +-commons-logging:commons-logging:1.1.1
[info]         +-org.apache.httpcomponents:httpcore:4.2.5
[info]
1

1 Answers

2
votes

If you look at the SBT tutorial, you'll find that project/*.scala files are equivalent to *.sbt files in the root directory. So that's where you need to make the changes (specifically, in CassandraSparkBuild.scala).

The problem is that there are two versions of Netty in transitive dependencies and SBT doesn't notice this because the group IDs are different: org.jboss.netty for 3.2.2 and io.netty for 3.8. Find where they come from (using e.g. https://github.com/jrudolph/sbt-dependency-graph) and exclude the older version (and hope nothing breaks).