Однажды у меня была похожая проблема с некоторыми пакетами Java и log4j. Я создал собственную стратегию слияния, в которой я выбрал только первое вхождение. Возможно, вы сможете адаптировать этот код, чтобы он работал на вас:
assemblyMergeStrategy in assembly := {
// case PathList("javax", "servlet", xs @ _*) => MergeStrategy.first
case PathList("org", "apache", "commons", xs @ _*) =>
// println(s"$xs")
MergeStrategy.first
case PathList(ps @ _*) if ps.last endsWith ".html" => MergeStrategy.first
case "application.conf" => MergeStrategy.concat
case "log4j.properties" => MergeStrategy.first
case "unwanted.txt" => MergeStrategy.discard
case x =>
val oldStrategy = (assemblyMergeStrategy in assembly).value
oldStrategy(x)
}
Может быть, если вы измените
case PathList("org", "apache", "commons", xs @ _*) =>
// println(s"$xs")
MergeStrategy.first
к вашим проблемным пакетам (netty
) вам удастся решить:
case PathList("io", "netty", xs @ _*) =>
// println(s"$xs")
MergeStrategy.first