【发布时间】:2015-05-04 23:09:52
【问题描述】:
sbt-assembly 合并策略的描述称为 rename 听起来它可能允许类似于 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)
}
}
}
【问题讨论】:
-
我看到这部分的答案是 here sbt-assembly 不会遮蔽。哪一部分留下“它是否合适”?
-
这有用吗??我也是这种情况……
-
@acidghost :不,根据我的链接,sbt-assembly 不会进行这种转换。您只需要使用 sbt excludes 来解决问题,它们非常依赖于当前的依赖 jar 集。
-
sbt 现在支持阴影 in sbt#master via this PR
标签: sbt sbt-assembly