&引用;未知的人工制品。“未解析或索引”;scalatest的错误

&引用;未知的人工制品。“未解析或索引”;scalatest的错误,scala,maven,intellij-idea,sbt,scalatest,Scala,Maven,Intellij Idea,Sbt,Scalatest,我正试图修改build.sbt文件,以便在IntelliJ IDEA中添加scalatest依赖项。控制台中没有错误日志,但我得到了一个未知工件。未解析或索引。当我将鼠标悬停在下划线上时。我如何解决这个问题?非常感谢 这是我用来添加依赖项的行:libraryDependencies+=“org.scalatest”%”scalatest_2.11“%”3.0.1“%”test“ 我的屏幕是这样的: 如果您刚刚添加了依赖项,它可能尚未下载。刷新/重新导入项目以执行此操作 如果已下载,请在带有警告的

我正试图修改build.sbt文件,以便在IntelliJ IDEA中添加scalatest依赖项。控制台中没有错误日志,但我得到了一个未知工件。未解析或索引。当我将鼠标悬停在下划线上时。我如何解决这个问题?非常感谢

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

我的屏幕是这样的:

如果您刚刚添加了依赖项,它可能尚未下载。刷新/重新导入项目以执行此操作

如果已下载,请在带有警告的行上按Alt+Enter in IntelliJ并选择“更新项目冲突解决程序索引”快速修复,然后选择“本地缓存”索引并单击“更新”

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


我也有同样的问题。文件->使缓存无效/重新启动。。。为我解决了这个问题。

仅更新/刷新项目在我的情况下不起作用。

在我的情况下,我尝试:

  • Alt+Enter,然后刷新项目
  • 更新解析程序的本地缓存
  • 文件->使缓存无效/重新启动
  • 上述措施都不起作用。因此,以下是我对该问题的解决方案,以供将来参考:

  • 确保启用Maven集成插件,并更新从未更新的公共缓存,而不是更新解析器的本地缓存

  • 如果是新安装的IntelliJ IDEA,这个过程可能需要一些时间才能完成下载。

    这让我恼火了好几个小时,但我想我终于部分理解了发生的事情。上述建议对我都不起作用

    从sbt文件中:

    SBT1.3.0+使用Coursier实现依赖关系管理。在SBT1.3.0之前,sbt已经使用ApacheIvy十年了。Coursier在保持兼容性方面做得很好,但是有些特性可能是ApacheIvy特有的。在这些情况下,可以使用以下设置切换回常春藤:

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

    我正在使用OSX、IntelliJ IDEA Ultimate 2019.2.3、Scala 2.12.8、JDK8(因为我与Spark合作)和SBT1.3.3


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

    当您在命令行中运行
    sbt compile
    时,它是否工作?我试过了,它对我有效。不过我没有使用IntelliJ。是的,
    compile
    可以工作,但是scalatest是用于测试的,对吗?我在图书馆里没看到。我是scala的新手。@JustinKaeser我试过了,但控制台上只显示了新的线条。没有消息或任何东西。我用的是Mac电脑。这有什么区别吗?对不起,我的意思是在带有警告的行上按Alt+Enter in IntelliJ并选择“更新项目解析程序索引”快速修复,然后选择“本地缓存”索引并单击“更新”快速修复对我不起作用。本地常春藤回购协议在几秒钟前更新,旧工件仍然显示为“未知工件”。
    Analyze>Inspect code…
    也有同样的问题,谢谢@JustinKaeser您知道当警告消失且不再有下划线时如何打开此窗口吗?它位于任何*-生成模块的SBT选项卡上“项目设置/模块”下的“文件/项目结构”对话框中。请注意,对于不包含适当索引的远程回购,它们将永远不会正确更新。对于添加的每个依赖项
    build.sbt
    ,这仍然是IntelliJ中的一个bug。很烦人,希望他们能尽快解决。在更新缓存后,可能需要刷新项目。这是我在2020年版本2020.2中的相关答案。重建之后,您还可以对该行进行注释(直到它下次投诉为止)。仅使用ThisBuild/useCoursier=false时,我收到了一个java.lang.IllegalArgumentException。根据使用Coursier for updateSbtClassifiers确实允许IntelliJ索引,但也解决了新引入的错误。这就是2020.02运行所需要的。谢谢
    ThisBuild / useCoursier := false