3

我如何告诉 sbt-assembly 保留其现有的合并/重复数据删除规则,除非两个.class文件冲突、重命名(并发出警告以便我知道)?

这是否与 Maven 中使用的阴影策略相同?

4

1 回答 1

4

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
)
于 2014-07-06T16:17:31.583 回答