Scala 2.12.1下commons-validator依赖解析失败问题求助
问题分析与解决方案
首先,这个报错的核心并非Scala 2.12.1本身和commons-validator不兼容——毕竟commons-validator是纯Java库,理论上和Scala版本无关。出现这种差异的原因大概率是依赖解析的缓存或索引问题,具体解决步骤如下:
1. 优先升级commons-validator版本
commons-validator 1.6.0版本可能在部分sbt环境的仓库索引中存在查找异常,而更新的稳定版本(比如1.7.0)在Maven Central中是明确可获取的,且完全兼容Scala 2.12.x。修改你的build.sbt配置如下:
organization := "scala" name := "MyProject" version := "1.0" scalaVersion := "2.12.1" libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "2.20.0" libraryDependencies += "commons-net" % "commons-net" % "3.6" libraryDependencies += "commons-validator" % "commons-validator" % "1.7.0"
2. 清理sbt本地缓存
如果升级版本后仍报错,可能是本地缓存中存在损坏的依赖文件或未完成的索引。执行以下命令清理缓存:
sbt clean cleanFiles
之后重新运行sbt compile,让sbt重新下载所有依赖。
3. 确认仓库配置(可选)
默认情况下sbt会启用Maven Central仓库,但如果你的项目有自定义仓库配置,可能需要显式确保该仓库被加入。可以在build.sbt中添加:
resolvers += Resolver.mavenCentral
为什么Scala 2.11.7能正常工作?
这是因为当你使用Scala 2.11.7时,sbt可能已经缓存了commons-validator 1.6.0的依赖包,或者当时的仓库索引状态正常。切换到Scala 2.12.1后,sbt触发了重新解析流程,恰好遇到了该版本的索引或下载问题。
内容的提问来源于stack exchange,提问作者Abdul Rahman
相关产品推荐
相关产品推荐

