Windows10下IntelliJ开发Scala/SBT时org.fusesource.jansi依赖报错求助
解决Windows 10下IntelliJ导入Scala/SBT项目时jansi 1.11依赖解析失败的问题
我之前在Windows 10上用IntelliJ做Scala/SBT开发时,也碰到过和你完全一样的问题——每次打开项目就报错,提示解析org.fusesource.jansi#jansi;1.11依赖时出现一堆java.util.NoSuchElementException。下面是几个我亲测有效的解决办法,你可以挨个试试:
清理缓存,从头开始解析依赖
首先关闭IntelliJ,找到SBT的本地缓存目录:C:\Users\<你的用户名>\.ivy2\cacheC:\Users\<你的用户名>\.sbt
把这两个目录里的内容删掉(担心出错的话可以先备份)。然后重新打开IntelliJ,点击File -> Invalidate Caches...,勾选Clear file system cache and local history,再点击Invalidate and Restart。重启后重新导入项目,让SBT重新拉取所有依赖。
更换SBT镜像源,解决网络拉取问题
很多时候这类依赖解析失败是因为默认镜像访问不稳定,换成国内镜像就能解决:- 在项目的
project目录下,检查build.properties文件,确保SBT版本是较新的稳定版(比如1.5.x及以上,旧版本可能存在依赖解析的bug)。 - 在你的用户目录(比如
C:\Users\<你的用户名>)下,找到.sbt文件夹,创建一个名为repositories的文件,内容如下:[repositories] local aliyun: http://maven.aliyun.com/nexus/content/groups/public/ jcenter: http://jcenter.bintray.com/ maven-central: http://repo1.maven.org/maven2/
这样SBT会优先从国内阿里云镜像拉取依赖,速度和稳定性都会好很多。
- 在项目的
手动放置jansi依赖到本地缓存
如果上面的方法都不行,可以手动下载依赖包放到本地缓存:- 搜索
org.fusesource.jansi jansi 1.11找到对应的jar包下载。 - 在本地创建路径
C:\Users\<你的用户名>\.ivy2\cache\org.fusesource.jansi\jansi\jars,把下载好的jansi-1.11.jar放进去。 - 可以从其他能正常解析该依赖的项目中复制对应的
ivy.xml文件,放到C:\Users\<你的用户名>\.ivy2\cache\org.fusesource.jansi\jansi目录下,这样SBT就会直接使用本地的依赖文件。
- 搜索
检查IntelliJ的SBT配置
打开IntelliJ的Settings -> Build, Execution, Deployment -> Build Tools -> SBT:- 确保
VM parameters里没有错误的代理配置,如果需要代理,正确设置-Dhttp.proxyHost和-Dhttp.proxyPort参数;不需要代理的话就清空这部分内容。 - 把
SBT version设置为Use project's sbt version,或者手动指定一个你已知稳定的版本。
- 确保
内容的提问来源于stack exchange,提问作者Steve Boxhall
相关产品推荐
相关产品推荐

