加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

由于StaticLoggerBinder.class中的重复数据删除错误,Scala SBT程

发布时间:2020-12-16 19:06:38 所属栏目:安全 来源:网络整理
导读:我的问题是我不能再使用sbt-assembly插件了,因为在这个项目的几个人之间徘徊了某种依赖合并问题. 运行’sbt assembly’时的问题: [error] 3 errors were encountered during merge java.lang.RuntimeException: deduplicate: different file contents found
我的问题是我不能再使用sbt-assembly插件了,因为在这个项目的几个人之间徘徊了某种依赖合并问题.

运行’sbt assembly’时的问题:

[error] 3 errors were encountered during merge
java.lang.RuntimeException: deduplicate: different file contents found
in the following:
/Users/aris.vlasakakis/.ivy2/cache/ch.qos.logback/logback-classic/jars/logback-classic-1.1.2.jar:org/slf4j/impl/StaticLoggerBinder.class
/Users/aris.vlasakakis/.ivy2/cache/org.slf4j/slf4j-log4j12/jars/slf4j-log4j12-1.6.1.jar:org/slf4j/impl/StaticLoggerBinder.class
deduplicate: different file contents found in the following:
/Users/aris.vlasakakis/.ivy2/cache/ch.qos.logback/logback-classic/jars/logback-classic-1.1.2.jar:org/slf4j/impl/StaticMDCBinder.class
/Users/aris.vlasakakis/.ivy2/cache/org.slf4j/slf4j-log4j12/jars/slf4j-log4j12-1.6.1.jar:org/slf4j/impl/StaticMDCBinder.class
deduplicate: different file contents found in the following:
/Users/aris.vlasakakis/.ivy2/cache/ch.qos.logback/logback-classic/jars/logback-classic-1.1.2.jar:org/slf4j/impl/StaticMarkerBinder.class
/Users/aris.vlasakakis/.ivy2/cache/org.slf4j/slf4j-log4j12/jars/slf4j-log4j12-1.6.1.jar:org/slf4j/impl/StaticMarkerBinder.class
at sbtassembly.Assembly$.applyStrategies(Assembly.scala:140)
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)
at sbtassembly.Assembly$.inputs$lzycompute$1(Assembly.scala:67)
at sbtassembly.Assembly$.inputs$1(Assembly.scala:57)

… 等等

I am using SBT-assembly 0.13.0,and here is the build.sbt

name := "metamorphosis"

version := "0.10.0"

scalaVersion := "2.10.4"

lazy val common = RootProject(file("../"))

val main = Project(id = "bridge",base = file(".")).dependsOn(common)

//excludeDependencies += "org.apache.logging.log4j"

resolvers ++= Seq(
//  "Akka Snapshot Repository" at "http://repo.akka.io/snapshots/","Typesafe Releases" at "http://repo.typesafe.com/typesafe/releases/","Sonatype OSS Releases"  at "http://oss.sonatype.org/content/repositories/releases/"
)

libraryDependencies ++= Seq(
  "com.github.nscala-time" %% "nscala-time" % "1.8.0","com.sclasen" %% "akka-kafka" % "0.0.10" % "compile","com.typesafe.akka" %% "akka-actor" % "2.3.2","org.codehaus.groovy" % "groovy" % "2.3.7","com.typesafe.scala-logging" %% "scala-logging-slf4j" % "2.1.2","ch.qos.logback" % "logback-classic" % "1.1.2","ch.qos.logback.contrib" % "logback-json-classic" % "0.1.2","ch.qos.logback.contrib" % "logback-jackson" % "0.1.2","org.slf4j" % "slf4j-api" % "1.7.7","com.fasterxml.jackson.core" % "jackson-databind" % "2.2.2","org.clapper" %% "argot" % "1.0.3","com.typesafe" % "config" % "1.2.1","net.ceedubs" %% "ficus" % "1.0.1","com.typesafe.play" %% "anorm" % "2.3.6","org.json4s" %% "json4s-native" % "3.2.10","org.json4s" %% "json4s-jackson" % "3.2.10","com.github.tototoshi" %% "scala-csv" % "1.1.2","org.scalatest" %% "scalatest" % "2.2.2","junit" % "junit" % "4.11","org.apache.kafka" %% "kafka" % "0.8.1.1"
    exclude("javax.jms","jms")
    exclude("com.sun.jdmk","jmxtools")
    exclude("com.sun.jmx","jmxri")
    exclude("org.slf4j","slf4j-simple")
)

mainClass in assembly := Some("com.company.kafka.agent.MetamorphosisActor")

有关如何解决如何修复此合并问题的任何线索?

谢谢!

解决方法

问题是多个依赖项会导致slf4j传递依赖,从而导致冲突.最好的方法是排除传递依赖,而不是使用SBT程序集的合并策略来解决冲突.

首先,您需要可视化slf4j的来源(适用于所有顶级依赖项).您可以使用此sbt-dependency-graph之类的工具来获取所有依赖项的可视化图表.或者,您可以从SBT命令提示符中探索SBT设置,或使用像this one或this one这样的maven站点.

找到重复的依赖项后,使用与在构建文件中使用的方法相同的方法.只留下单个slf4j传递依赖.您还可以排除所有slf4j传递依赖项(请参阅here how)并在顶层手动添加该slf4j依赖项.

请注意,如果您的依赖项需要多个不同版本的slf4j,那么选择适用于所有情况的单个版本可能会有问题.取决于二进制兼容性.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读