Dependency issue with Scalding and Hadoop with sbt-assembly Dependency issue with Scalding and Hadoop with sbt-assembly hadoop hadoop

Dependency issue with Scalding and Hadoop with sbt-assembly


The order of the directives is important. You update the assembly settings, to overwrite it again a line later. First defining assemblySettings and then updating it will solve it.

The updated build.sbt:

import AssemblyKeys._assemblySettingsmergeStrategy in assembly <<= (mergeStrategy in assembly) { (old) =>  {    case PathList("org", "apache", "jasper", xs @ _*) => MergeStrategy.last    case x => old(x)  }}…

After that you will discover that there are a lot more conflicting classes and other files. In this case you will require the following merges:

case PathList("org", "apache", xs @ _*) => MergeStrategy.lastcase PathList("javax", "servlet", xs @ _*) => MergeStrategy.lastcase PathList("com", "esotericsoftware", xs @ _*) => MergeStrategy.lastcase PathList("project.clj") => MergeStrategy.lastcase PathList("overview.html") => MergeStrategy.lastcase x => old(x)

Note that using merge strategies for class files may give problems, caused by incompatible versions of that specific class. If that is the case then your problem is larger, because then the dependencies are incompatible with each other. You have then to resort to removing the dependency and find/make a compatible version.