【问题标题】:sbt-assembly: Rename Class with merge conflicts (shade)sbt-assembly:重命名具有合并冲突的类(阴影)
【发布时间】:2014-08-27 03:04:29
【问题描述】:

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

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

【问题讨论】:

    标签: sbt sbt-assembly


    【解决方案1】:

    rename 策略实际上只是重命名文件而不更改内容,因此它不适用于 .class 文件。重命名的主要用例是 LICENSE 文件。

    2015 年 9 月更新

    sbt-assembly 0.14.0 添加了shading 支持。

    sbt-assembly 可以隐藏项目或库依赖项中的类。在 Jar Jar Links 的支持下,字节码转换(通过 ASM)用于更改对重命名类的引用。

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

    【讨论】:

    猜你喜欢
    • 2012-10-29
    • 2015-12-27
    • 2016-07-03
    • 2015-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多