我对Scala还是很陌生(但熟悉Java)。我想克隆一个Sbt project,经过几次构建刷新后,它似乎终于同步了,但是当我打开一个项目文件时,它显示了Cannot resolve symbol cassovary
(Cassovary是Twitter的一个库)。我检查了IDEA外部依赖关系,但令我惊讶的是,只有它的META-INF
下载了它,显示为,当我检查本地的“ .ivy2”文件夹时,字节码和源文件就在那里了! >
有趣的是,库的所有依赖项都已解决,IDEA可以正确加载它们。仅主要依赖项有此问题。
Cassovary库尚未加载,但其依赖项是
Sbt版本:1.2.1
IDEA版本:20.18.3.2社区版
使缓存/重新启动,不同版本无效,手动删除.ivy2文件夹并重新下载依赖项,并检查Github中的库问题
name := "fast-ppr"
version := "1.0"
scalaVersion := "2.11.11"
//resolvers ++= Seq(
// Resolver.sonatypeRepo("releases"),
// "Twitter Maven" at "https://maven.twttr.com"
//)
libraryDependencies += "com.twitter" %% "cassovary" % "4.0.0"
libraryDependencies += "org.scalatest" %% "scalatest" % "2.2.6" % "test"
答案 0 :(得分:0)
想提供一些通常可以帮助我解决想法问题的动作:
在将构建导入到Idea之前,请尝试在控制台中运行SBT命令(如果已创建,请先删除.idea文件夹)。在我当前的项目中,我们甚至在针对新手的常见问题解答中也有这样的步骤
尝试将SBT设置为Idea的默认构建选项(以下屏幕截图)。它为我大大减少了奇怪的编译问题。
设置中的Sbt构建选项:
更新: 似乎https://github.com/plofgren/fast-ppr-scala最初是使用Scala 2.10构建的,而Cassovary 3.2.0仅适用于2.10。
请尝试设置scalaVersion:=“ 2.10.7”并将cassovary的原始版本保留在build.sbt中。与3.2.0相比,库API在4.0.0中进行了更改,因此如果不更改代码,它就无法编译。这就是为什么您会出错。
然后,您可以从控制台运行“ sbt clean reload compile”,以检查其是否有效。
自4.0.0开始,AFAIK cassovary支持2.11,因此,要在更新版本的库中运行,您需要更新代码。