gpt4 book ai didi

sbt - sbt-assembly 是否应该执行类似 "maven-shade-plugin"的类重定位?

转载 作者:行者123 更新时间:2023-12-04 19:04:17 25 4
gpt4 key购买 nike

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

最佳答案

2015 年 9 月更新 :

sbt-assembly 0.14.0 添加 shading支持。

sbt-assembly can shade classes from your projects or from the library dependencies. Backed by Jar Jar Links, bytecode transformation (via ASM) is used to change references to the renamed classes.



assemblyShadeRules in assembly := Seq(
ShadeRule.rename("org.apache.commons.io.**" -> "shadeio.@1").inAll
)

关于sbt - sbt-assembly 是否应该执行类似 "maven-shade-plugin"的类重定位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28846389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com