sbt-assembly和依赖关系中的多个类defs

awf*_*ack 3 plugins sbt sbt-assembly

作为sbt和sbt-assembly插件的新手我很困惑如何处理涉及我想要打包的依赖项中的不同类定义的构建.

[error] (*:assembly) deduplicate: different file contents found in the following:
[error] /Users/dm/.ivy2/cache/org.apache.tika/tika-app/jars/tika-app-1.3.jar:javax/xml/XMLConstants.class
[error] /Users/dm/.ivy2/cache/stax/stax-api/jars/stax-api-1.0.1.jar:javax/xml/XMLConstants.class
[error] /Users/dm/.ivy2/cache/xml-apis/xml-apis/jars/xml-apis-1.3.03.jar:javax/xml/XMLConstants.class
Run Code Online (Sandbox Code Playgroud)

我已经添加:

mergeStrategy in assembly <<= (mergeStrategy in assembly) { (old) =>
  {
    case PathList("javax", "xml", xs @ _*) => MergeStrategy.first
  }
}
Run Code Online (Sandbox Code Playgroud)

到我的build.sbt文件,但我仍然得到上面的错误(无论它是否在构建文件中).任何指导将不胜感激.

谢谢,

Eug*_*ota 5

我觉得你很亲密.确保在assemblySettings加载后添加任何重新布线,并将您未处理的任何模式传递给默认策略:

assemblySettings

mergeStrategy in assembly <<= (mergeStrategy in assembly) { (old) =>
  {
    case PathList("javax", "xml", xs @ _*) => MergeStrategy.first
    case _ => old
  }
}
Run Code Online (Sandbox Code Playgroud)