Scalatra项目无法导入scalatra-json与json4s-jackson求助
解决Scalatra-Json依赖下载失败的问题
看起来你遇到的核心问题是依赖版本不兼容,导致对应的包在Maven仓库中不存在,具体分析和解决方案如下:
问题根源
从错误信息里能定位两个关键问题:
- Scalatra 2.2.0不支持Scala 2.12:你尝试下载
scalatra-json_2.12:2.2.0,但Scalatra 2.2.0是2013年的老版本,而Scala 2.12直到2016年才发布,这个版本的Scalatra根本没有针对Scala 2.12编译的包,自然找不到。 - Json4s版本冲突/不存在:错误中显示尝试下载
json4s-jackson_2.12:3.7.0,但你在build.sbt里指定的是3.5.2,这应该是旧版Scalatra的依赖传递导致的版本冲突,而3.7.0也没有对应Scala 2.12的可用包。
解决方案
1. 升级Scalatra版本到支持Scala 2.12的版本
Scalatra从2.5.x版本开始支持Scala 2.12,建议你把Scalatra版本至少升级到2.5.0或更高的稳定版(比如2.8.0)。
2. 对齐Json4s版本,避免冲突
确保Json4s的版本与你选择的Scalatra版本兼容,Scalatra 2.5.x系列推荐使用Json4s 3.5.x版本,和你原本指定的3.5.2完全匹配。
修改后的build.sbt示例:
val ScalatraVersion = "2.5.0" // 也可以用更新的稳定版,比如2.8.0 libraryDependencies ++= Seq( "org.scalatra" %% "scalatra-json" % ScalatraVersion, "org.json4s" %% "json4s-jackson" % "3.5.2" )
3. 验证依赖下载
修改完成后,先手动触发依赖下载确认无错误,再启动Jetty:
sbt update sbt jetty:start
额外提示
如果因为项目限制必须使用旧版Scalatra,那你需要降级Scala版本到2.11或更早(Scalatra 2.2.0支持Scala 2.10/2.9),但这不是推荐方案——旧版本的Scala和Scalatra都已停止维护,存在安全风险。
内容的提问来源于stack exchange,提问作者WinterSoldier
相关产品推荐
相关产品推荐

