renameと呼ばれるsbt-assemblyマージ戦略の説明は、互換性のないバージョンのライブラリの管理を可能にするためにクラスとその参照を再配置するmaven-shade-pluginのシェーディング操作に似たものを許可するように聞こえました。
sbt-assembly がその機能を実行するのは適切でしょうか?
次のマージ戦略を使用して、名前変更を再配置メカニズムとして使用しようとしましたが、すべてのファイルに一致する一方で、それらをそのまま渡します (これは、コードを見ることと一致しています)。
assemblyMergeStrategy in assembly := { s =>
s match {
case PathList("com", "clearspring", "analytics", _*) => {
println("match_cs: " + s)
MergeStrategy.rename
}
case x => {
println("x: " + x)
val oldStrategy = (assemblyMergeStrategy in assembly).value
oldStrategy(x)
}
}
}