scalatest的“未知工件。未解析或编入索引”错误

时间:2016-12-29 04:04:05

标签: scala maven intellij-idea sbt scalatest

我正在尝试修改build.sbt文件以在IntelliJ IDEA中添加scalatest依赖项。控制台中没有错误日志,但当我将鼠标悬停在下划线上时,我得到Unknown artifact. Not resolved or indexed.。我该如何解决这个问题?非常感谢提前!

这是我用来添加依赖项的行:libraryDependencies += "org.scalatest" % "scalatest_2.11" % "3.0.1" % "test"

以下是我的屏幕: enter image description here

4 个答案:

答案 0 :(得分:35)

如果您刚刚添加了依赖项,则可能尚未下载。刷新/重新导入项目即可。

如果已经下载,请在带有警告的行上的IntelliJ中按Alt + Enter并选择“更新项目解析器索引”quickfix,然后选择“本地缓存”索引并单击“更新”。

您可以通过检查“已更新”列中的日期来验证更新是否有效:

Resolver indexes

答案 1 :(得分:8)

我遇到了同样的问题。档案 - >无效缓存/重新启动...为我解决了问题 只是更新/刷新项目在我的案例中没有用。

答案 2 :(得分:5)

在我的情况下,我尝试过:

  1. 按Alt + Enter然后刷新项目。
  2. 更新解析器的本地缓存。
  3. 文件 - >使高速缓存/重新启动无效。
  4. 以上都没有奏效。因此,为了将来参考,这是我对此问题的解决方案:

    1. 确保启用Maven集成插件,而不是更新解析器的本地缓存,更新未更新的公共。
    2. 如果是新安装的IntelliJ IDEA,则此过程可能需要一些时间才能完成下载。

答案 3 :(得分:2)

这已经激怒了我几个小时,但是我想我终于部分地了解了发生了什么。以上建议对我都不起作用。

来自sbt文档中的Automatic Dependency Management

  

sbt 1.3.0+使用Coursier实施依赖项管理。在sbt 1.3.0之前,sbt使用Apache Ivy已经有十年了。 Coursier在保持兼容性方面做得很好,但是某些功能可能特定于Apache Ivy。在这种情况下,您可以使用以下设置切换回常春藤:

ThisBuild / useCoursier := false

我对我的情况的解释是IntelliJ没有对Coursier的适当支持(这很奇怪),但是sbt使用Coursier下载依赖项,然后IntelliJ找不到它们,因为它正在我的常春藤缓存中查找。 facepalm

我正在使用OSX,IntelliJ IDEA Ultimate 2019.2.3,Scala 2.12.8,JDK8(因为我正在使用Spark)和sbt 1.3.3。

将以上行添加到我的build.sbt文件中为我解决了这个问题。我的~/.ivy2/cache目录现在是最新的。 Coursier将其缓存存储在~/Library/Caches/Coursier/v1docs)中,但是我似乎找不到找到让IntelliJ使用Coursier缓存来解决依赖关系的方法。欢迎比我了解更多有关sbt的人提供更多有关该主题的信息!