有时
assemblyExcludedJars
不起作用。
最糟糕的方法是在合并策略中使用defind。
assemblyMergeStrategy in assembly :={
case PathList("lib", "static", "Windows", xs @ _*) => MergeStrategy.discard
case PathList("META-INF", xs @ _*) => MergeStrategy.discard
case PathList("com","sun", xs @ _*)=> MergeStrategy.discard
case PathList("mx4j", xs @ _*)=> MergeStrategy.discard
case PathList("org","aopalliance", xs @ _*)=> MergeStrategy.discard
case PathList("org","apache","jasper", xs @ _*)=> MergeStrategy.discard
case PathList("javax", xs @ _*)=> MergeStrategy.discard
case PathList("org", "apache", "jasper", xs @ _*)=> MergeStrategy.discard
case PathList("org", "fusesource", xs @ _*)=> MergeStrategy.discard
case PathList("org", "objenesis", xs @ _*)=> MergeStrategy.discard
case PathList("org", "scalactic", xs @ _*)=> MergeStrategy.discard
case PathList("org", "scalactic", xs @ _*)=> MergeStrategy.discard
case PathList("parquet", xs @ _*)=> MergeStrategy.discard
case PathList("javax", xs @ _*)=> MergeStrategy.discard
case PathList("org", "apache", "jasper", xs @ _*)=> MergeStrategy.discard
case PathList("org", "fusesource", xs @ _*)=> MergeStrategy.discard
case PathList("org", "objenesis", xs @ _*)=> MergeStrategy.discard
case PathList("org", "scalactic", xs @ _*)=> MergeStrategy.discard
case PathList("parquet", xs @ _*)=> MergeStrategy.discard
case PathList("akka", xs @ _*)=> MergeStrategy.discard
case PathList("antlr", xs @ _*)=> MergeStrategy.discard
case PathList("assets", xs @ _*)=> MergeStrategy.discard
case PathList("au", xs @ _*)=> MergeStrategy.discard
case PathList("breeze", xs @ _*)=> MergeStrategy.discard
case PathList("codegen", xs @ _*)=> MergeStrategy.discard
case PathList("contribs", xs @ _*)=> MergeStrategy.discard
case PathList("darwin", xs @ _*)=> MergeStrategy.discard
case PathList("db", xs @ _*)=> MergeStrategy.discard
case PathList("edu", xs @ _*)=> MergeStrategy.discard
case PathList("fr", xs @ _*)=> MergeStrategy.discard
case PathList("hbase-webapps", xs @ _*)=> MergeStrategy.discard
case PathList("html", xs @ _*)=> MergeStrategy.discard
case PathList("i18n", xs @ _*)=> MergeStrategy.discard
case PathList("images", xs @ _*)=> MergeStrategy.discard
case PathList("io", xs @ _*)=> MergeStrategy.discard
case PathList("javaewah", xs @ _*)=> MergeStrategy.discard
case PathList("javassist", xs @ _*)=> MergeStrategy.discard
case PathList("javolution", xs @ _*)=> MergeStrategy.discard
case PathList("jersey", xs @ _*)=> MergeStrategy.discard
case PathList("jline", xs @ _*)=> MergeStrategy.discard
case PathList("jodd", xs @ _*)=> MergeStrategy.discard
case PathList("joptsimple", xs @ _*)=> MergeStrategy.discard
case PathList("junit", xs @ _*)=> MergeStrategy.discard
case PathList("kafka", xs @ _*)=> MergeStrategy.discard
case PathList("linux", xs @ _*)=> MergeStrategy.discard
case PathList("macrocompat", xs @ _*)=> MergeStrategy.discard
case PathList("mozilla", xs @ _*)=> MergeStrategy.discard
case PathList("net", xs @ _*)=> MergeStrategy.discard
case PathList("nu", xs @ _*)=> MergeStrategy.discard
case PathList("ooyala", xs @ _*)=> MergeStrategy.discard
case PathList("OSGI-OPT", xs @ _*)=> MergeStrategy.discard
case PathList("py4j", xs @ _*)=> MergeStrategy.discard
case PathList("scala", xs @ _*)=> MergeStrategy.discard
case PathList("schema", xs @ _*)=> MergeStrategy.discard
case PathList("shaded", xs @ _*)=> MergeStrategy.discard
case PathList("shapeless", xs @ _*)=> MergeStrategy.discard
case PathList("snappydata", xs @ _*)=> MergeStrategy.discard
case PathList("spark", xs @ _*)=> MergeStrategy.discard
case PathList("spire", xs @ _*)=> MergeStrategy.discard
case PathList("spray", xs @ _*)=> MergeStrategy.discard
case PathList("tables", xs @ _*)=> MergeStrategy.discard
case PathList("templates", xs @ _*)=> MergeStrategy.discard
case PathList("twitter4j", xs @ _*)=> MergeStrategy.discard
case PathList("webapps", xs @ _*)=> MergeStrategy.discard
case PathList("win32", xs @ _*)=> MergeStrategy.discard
case PathList("org", "antlr",xs @ _*)=> MergeStrategy.discard
case PathList("org", "bouncycastle",xs @ _*)=> MergeStrategy.discard
case PathList("org", "cliffc",xs @ _*)=> MergeStrategy.discard
case PathList("org", "cloudera",xs @ _*)=> MergeStrategy.discard
case PathList("org", "codehaus",xs @ _*)=> MergeStrategy.discard
case PathList("org", "datanucleus",xs @ _*)=> MergeStrategy.discard
case PathList("org", "dmg",xs @ _*)=> MergeStrategy.discard
case PathList("org", "eclipse",xs @ _*)=> MergeStrategy.discard
case PathList("org", "eigenbase",xs @ _*)=> MergeStrategy.discard
case PathList("org", "flywaydb",xs @ _*)=> MergeStrategy.discard
case PathList("org", "glassfish",xs @ _*)=> MergeStrategy.discard
case PathList("org", "h2",xs @ _*)=> MergeStrategy.discard
case PathList("org", "hamcrest",xs @ _*)=> MergeStrategy.discard
case PathList("org", "I0Itec",xs @ _*)=> MergeStrategy.discard
case PathList("org", "iq80",xs @ _*)=> MergeStrategy.discard
case PathList("org", "jamon",xs @ _*)=> MergeStrategy.discard
case PathList("org", "jboss",xs @ _*)=> MergeStrategy.discard
case PathList("org", "jcodings",xs @ _*)=> MergeStrategy.discard
case PathList("org", "jets3t",xs @ _*)=> MergeStrategy.discard
case PathList("org", "joda",xs @ _*)=> MergeStrategy.discard
case PathList("org", "joni",xs @ _*)=> MergeStrategy.discard
case PathList("org", "jpmml",xs @ _*)=> MergeStrategy.discard
case PathList("org", "junit",xs @ _*)=> MergeStrategy.discard
case PathList("org", "jvnet",xs @ _*)=> MergeStrategy.discard
case PathList("org", "j_paine",xs @ _*)=> MergeStrategy.discard
case PathList("org", "mortbay",xs @ _*)=> MergeStrategy.discard
case PathList("org", "netlib",xs @ _*)=> MergeStrategy.discard
case PathList("org", "omg",xs @ _*)=> MergeStrategy.discard
case PathList("org", "osgi",xs @ _*)=> MergeStrategy.discard
case PathList("org", "parboiled",xs @ _*)=> MergeStrategy.discard
case PathList("org", "parboiled2",xs @ _*)=> MergeStrategy.discard
case PathList("org", "roaringbitmap",xs @ _*)=> MergeStrategy.discard
case PathList("org", "rogach",xs @ _*)=> MergeStrategy.discard
case PathList("org", "scalatest",xs @ _*)=> MergeStrategy.discard
case PathList("org", "stringtemplate",xs @ _*)=> MergeStrategy.discard
case PathList("org", "supercsv",xs @ _*)=> MergeStrategy.discard
case PathList("org", "tukaani",xs @ _*)=> MergeStrategy.discard
case PathList("org", "uncommons",xs @ _*)=> MergeStrategy.discard
case PathList("org", "w3c",xs @ _*)=> MergeStrategy.discard
case PathList("org", "xerial",xs @ _*)=> MergeStrategy.discard
case PathList("org", "znerd",xs @ _*)=> MergeStrategy.discard
case PathList("org", "clearspring",xs @ _*)=> MergeStrategy.discard
case PathList("org", "esotericsoftware",xs @ _*)=> MergeStrategy.discard
case PathList("org", "facebook",xs @ _*)=> MergeStrategy.discard
case PathList("org", "fasterxml",xs @ _*)=> MergeStrategy.discard
case PathList("com", "gemstone",xs @ _*)=> MergeStrategy.discard
case PathList("com", "github",xs @ _*)=> MergeStrategy.discard
case PathList("com", "jamesmurty",xs @ _*)=> MergeStrategy.discard
case PathList("com", "jolbox",xs @ _*)=> MergeStrategy.discard
case PathList("com", "ning",xs @ _*)=> MergeStrategy.discard
case PathList("com", "pivotal",xs @ _*)=> MergeStrategy.discard
case PathList("com", "thoughtworks",xs @ _*)=> MergeStrategy.discard
case PathList("com", "univocity",xs @ _*)=> MergeStrategy.discard
case PathList("com", "vmware",xs @ _*)=> MergeStrategy.discard
case PathList("com", "yammer",xs @ _*)=> MergeStrategy.discard
case PathList("com", "zaxxer",xs @ _*)=> MergeStrategy.discard
case x => MergeStrategy.first
}