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 に答える