称为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)
}
}
}