java - 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和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-classic
来说logback-core
也没有意义。
最后一个问题是两者都有slf4j-simple
依赖logback
关系。
编辑:如果没有明确禁用,Play 会自行使用 Logback,因此它已经有一些 Logback 和 SLF4J 版本的依赖项,并且您使用不兼容的版本覆盖 SLF4J(并添加slf4j-simple
不能与 Logback 一起使用的版本)。如果您想覆盖 Play 所做的事情,请删除您的依赖项或遵循链接的文档。
推荐阅读
- windows - 如何在windows的“omnidb”中将csv文件数据导入postgresql
- gradle - 如何改进并行 gradle 构建的构建失败报告?
- ios - 如何将触摸绘制的路径与给定的贝塞尔路径进行比较?
- git - 远程存储库上的 Git 操作失败(凭据管理器错误)
- java - 使用 exapnd/collaps 动画高度保持不变后,我在相对布局中有一些视图,但我想根据 java 代码进行更改
- excel - 如何选择下拉列表中的每个选项并单击按钮(同源策略问题 - 第二次迭代时权限被拒绝)
- javascript - 在 Jquery 中创建一个多数组给出错误
- ios - 媒体库的授权不运行处理程序
- magento - core/html_select 设置 aria-selected Magento 1
- javascript - 使用 angularjs 获取相同 id 的总值并将最终答案显示为 json 数组