首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sbt程序集错误:重复数据删除:在io.netty.versions.properties中找到不同的文件内容

sbt程序集错误:重复数据删除:在io.netty.versions.properties中找到不同的文件内容
EN

Stack Overflow用户
提问于 2019-02-11 15:16:11
回答 5查看 2.9K关注 0票数 5

我已经将以下jar添加到build.sbt文件中,如下所示:

代码语言:javascript
复制
"com.amazonaws" % "aws-java-sdk" % "1.11.492"

在合并的过程中,我得到了以下错误:

代码语言:javascript
复制
 [error] 1 error was encountered during merge
java.lang.RuntimeException: deduplicate: different file contents found in the following:
/home/jenkins-slave/.ivy2/cache/io.netty/netty-codec-http/jars/netty-codec-http-4.1.17.Final.jar:META-INF/io.netty.versions.properties
/home/jenkins-slave/.ivy2/cache/io.netty/netty-handler/jars/netty-handler-4.1.17.Final.jar:META-INF/io.netty.versions.properties
/home/jenkins-slave/.ivy2/cache/io.netty/netty-codec/jars/netty-codec-4.1.17.Final.jar:META-INF/io.netty.versions.properties
/home/jenkins-slave/.ivy2/cache/io.netty/netty-transport/jars/netty-transport-4.1.17.Final.jar:META-INF/io.netty.versions.properties
/home/jenkins-slave/.ivy2/cache/io.netty/netty-resolver/jars/netty-resolver-4.1.17.Final.jar:META-INF/io.netty.versions.properties
/home/jenkins-slave/.ivy2/cache/io.netty/netty-buffer/jars/netty-buffer-4.1.17.Final.jar:META-INF/io.netty.versions.properties
/home/jenkins-slave/.ivy2/cache/io.netty/netty-common/jars/netty-common-4.1.17.Final.jar:META-INF/io.netty.versions.properties
    at sbtassembly.Assembly$.applyStrategies(Assembly.scala:143)
    at sbtassembly.Assembly$.x$1$lzycompute$1(Assembly.scala:25)
    at sbtassembly.Assembly$.x$1$1(Assembly.scala:23)
    at sbtassembly.Assembly$.stratMapping$lzycompute$1(Assembly.scala:23)
    at sbtassembly.Assembly$.stratMapping$1(Assembly.scala:23)...........

我已经尝试了许多为此提供的变通方法,例如:

1)在build.sbtcase PathList("io", "netty", xs @ _*) => MergeStrategy.discardassemblyMergeStrategy中添加了这一行(在.last.first中试用)

2)在build.sbtcase "META-INF\\io.netty.versions.properties" =>MergeStrategy.firstassemblyMergeStrategy中添加了这一行(在.last.discard中试用)

3)针对excludedDependencies中出错的网络jar,增加了SBT排除规则,如下:

代码语言:javascript
复制
    excludeDependencies ++= Seq(
      SbtExclusionRule("io.netty", "netty-codec-http"),
      SbtExclusionRule("io.netty", "netty-codec"),
      SbtExclusionRule("io.netty", "netty-handler"),
      SbtExclusionRule("io.netty", "netty-transport"),
      SbtExclusionRule("io.netty", "netty-resolver"),
      SbtExclusionRule("io.netty", "netty-buffer"),
      SbtExclusionRule("io.netty", "netty-common")
    )

这些解决方案的above.None的许多这样的变体正在工作。

plugins.sbt如下所示:

代码语言:javascript
复制
addSbtPlugin("io.spray" % "sbt-revolver" % "0.7.2")

addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.5.0")

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

addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.0.1")

addSbtPlugin("com.scalapenos" % "sbt-prompt" % "0.2.1")

addSbtPlugin("com.timushev.sbt" % "sbt-updates" % "0.1.10")

addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.8.0")

addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "4.0.0")

敬请指教。

EN

回答 5

Stack Overflow用户

发布于 2019-02-11 23:48:09

你可以在下面尝试一下:

代码语言:javascript
复制
assemblyMergeStrategy in assembly := {
      case x if x.contains("io.netty.versions.properties") => MergeStrategy.discard
      case x =>
        val oldStrategy = (assemblyMergeStrategy in assembly).value
        oldStrategy(x)
}

或者在最坏的情况下

代码语言:javascript
复制
case x if x.contains("versions.properties") => MergeStrategy.discard
票数 5
EN

Stack Overflow用户

发布于 2019-12-02 17:17:07

如果检查文件的内容,您可以看到每个jar文件中都有不同的值,因此为了在程序集中正确地处理这些文件,您需要合并这些文件以保留其中的所有属性。使用case "META-INF/io.netty.versions.properties" => MergeStrategy.concat it作为策略。

票数 2
EN

Stack Overflow用户

发布于 2020-04-15 18:30:09

在寻找问题的解决方案后,我在sbt-assembly存储库中找到了this issue

它包含以下解决方法,为我解决了这个问题:

当外部依赖项被早期版本的AWS库"com.amazonaws" % "aws-java-sdk" % "1.11.80"替换时,

它会起作用,因为该库不包含任何重复的META-INF/io.netty.versions.properties

我可以想象,对于那些需要最新版本的人来说,这是不起作用的,但这至少是一些东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54625572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档