本文爲個人的摘錄,將持續更新。完全資料在 https://github.com/sbt/sbt-assembly
- 打包時將 Spark 的包排除在外,使用 provided。
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.6.2" % "provided"
- 去除重名的包,保留第一個。(本例中將結尾爲 .class 的重名文件進行取第一個包操作)
assemblyMergeStrategy in assembly := {
case PathList(ps @ _*) if ps.last endsWith ".class" => MergeStrategy.first
case x =>
val oldStrategy = (assemblyMergeStrategy in assembly).value
oldStrategy(x)
}