java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder SBT Scala

java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder SBT Scala

我有 build.sbt 文件:

name := """test"""

version := "1.0-SNAPSHOT"

scalaVersion := "2.12.6"

val loggingDependencies = Seq(
"com.typesafe.scala-logging" %% "scala-logging" % "3.+",
"ch.qos.logback" % "logback-classic" % "1.2.3",
"ch.qos.logback" % "logback-core" % "1.+"
)

libraryDependencies ++= Seq(
...
"org.slf4j" % "slf4j-api" % "1.8.0-beta1",
"org.slf4j" % "slf4j-simple" % "1.8.0-beta1",
)

我添加这个依赖后

lazy val root = (project in file(".")).enablePlugins(PlayScala)

我收到一个错误

java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder

所有的建议都没有用!它出什么问题了!

这些版本不兼容,请参阅 https://www.slf4j.org/faq.html#changesInVersion18 and https://logback.qos.ch/news.html。如果你想要 Logback 1.2.3,你需要 SLF4J 1.7.x,如果你想要不稳定的 SLF4J 1.8,你需要(也是不稳定的)Logback 1.3.x.

"ch.qos.logback" % "logback-classic" % "1.2.3",
"ch.qos.logback" % "logback-core" % "1.+"

logback-classiclogback-core 的不同版本对我来说也没有意义。

最后一个问题是 slf4j-simplelogback 都在依赖项中。

编辑:播放 uses Logback on its own if not disabled explicitly,因此它已经在依赖项中有一些 Logback 和 SLF4J 版本,并且您使用不兼容的版本覆盖该 SLF4J(并添加无法使用的 slf4j-simple与 Logback 一起)。如果您想覆盖 Play 的功能,请删除您的依赖项或按照链接的文档进行操作。