我如何告诉 sbt-assembly 保留其现有的合并/重复数据删除规则,除非两个.class
文件冲突、重命名(并发出警告以便我知道)?
这是否与 Maven 中使用的阴影策略相同?
我如何告诉 sbt-assembly 保留其现有的合并/重复数据删除规则,除非两个.class
文件冲突、重命名(并发出警告以便我知道)?
这是否与 Maven 中使用的阴影策略相同?
该rename
策略实际上只是重命名文件并且不会更改内容,因此它不适用于 .class 文件。重命名的主要用例是 LICENSE 文件。
2015 年 9 月更新:
sbt-assembly 0.14.0 添加了着色支持。
sbt-assembly 可以隐藏项目或库依赖项中的类。在 Jar Jar Links 的支持下,字节码转换(通过 ASM)用于更改对重命名类的引用。
assemblyShadeRules in assembly := Seq(
ShadeRule.rename("org.apache.commons.io.**" -> "shadeio.@1").inAll
)