且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

SBT 程序集 - 重复数据删除错误 &排除错误

更新时间:2023-02-06 23:26:39

试试这个只排除 ECLIPSEF.RSA 文件,因为排除你的库可能需要的整个依赖是一个坏主意:)

Try this one to exclude only ECLIPSEF.RSA file, because excluding whole dependencies, which your libraries may need, is a bad idea :)

使用 sbt 程序集构建胖 jar 时 build.sbt 中的重复数据删除错误

最新0.12.0版本的汇编插件解决方案:

Solution for latest 0.12.0 version of assembly plugin:

assemblyMergeStrategy in assembly := {
    case PathList(ps @ _*) if ps.last endsWith ".RSA" => MergeStrategy.first 
    case x =>
       val oldStrategy = (assemblyMergeStrategy in assembly).value
       oldStrategy(x)
}

project/assembly.sbt

project/assembly.sbt

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.12.0")

https://github.com/sbt/sbt-assembly#merge-策略

附言关于 exclude:你不能只在 libraryDependencies 中指定 exclude - 你需要这样的东西: "log4j" % "log4j" % "1.2.15" exclude("javax.jms", "jms").请参阅图书馆管理

P.S. About exclude: you can't just specify exclude in libraryDependencies - you need something like this: "log4j" % "log4j" % "1.2.15" exclude("javax.jms", "jms"). See Library Management