Scala Intellij无法解析对特定jar文件的引用

Scala Intellij无法解析对特定jar文件的引用,scala,intellij-idea,sbt,Scala,Intellij Idea,Sbt,在由sbt驱动的给定项目中,专门用于kafka-spark-9.7.2.jar的MavenLocal存储库的项目库中存在某种损坏,其中: 编辑器解析器将对该jar提供的类的引用标记为“symbol not found” 然而,编辑器(奇怪的是)确实提供了导入类的功能 但在接受导入后,符号仍以红色标记为未解析 已经执行了以下“清理”尝试: 创建|制作项目 建造|重建项目 此外,我已经验证了该项目确实是从 sbt package 在命令行上 更新重新运行sbt gen idea后,解析器

在由sbt驱动的给定项目中,专门用于kafka-spark-9.7.2.jar的MavenLocal存储库的项目库中存在某种损坏,其中:

  • 编辑器解析器将对该jar提供的类的引用标记为“symbol not found”
  • 然而,编辑器(奇怪的是)确实提供了导入类的功能
  • 但在接受导入后,符号仍以红色标记为未解析

已经执行了以下“清理”尝试:

  • 创建|制作项目
  • 建造|重建项目
此外,我已经验证了该项目确实是从

sbt package
在命令行上

更新重新运行sbt gen idea后,解析器仍然找不到库。然而这些库是存在的——即使IJ也知道它们,如下面的屏幕截图所示。为什么我能找到图书馆

C:\Users\S80035683\.ivy2\cache\org.apache.kafka\kafka\jars\kafka-0.7.2-spark.jar!\kafka\api\FetchRequest.class
但是,IJ无法在解析器中解析来自该库的任何类


您必须为Intellij构建项目,请尝试在项目根目录中执行此操作:

sbt idea with-sources=yes
这应该从头开始构建项目结构并添加正确的依赖项,通常我会在添加依赖项或
jar
后刷新项目

编辑: 要使用这个命令,您需要这个,否则您可以使用
genidea
,但我只使用了几次,我不确定它将如何工作

编辑2:

首先,对于IDEA SBT控制台,您不需要预先添加SBT命令,因为您已经在SBT中了:

如果您有idea的sbt插件,您可以使用source=yes的
gen idea(无需预先添加sbt)

从终端,您可以转到项目根目录,键入
sbt
,进入sbt控制台,并使用
gen idea
idea with sources=yes
(不预先输入sbt)

或者直接
sbt gen idea
,或者如果您有带有sources=yes的插件
sbt idea
(在sbt之前)

要访问idea内部的sbt控制台,您需要在preferences->plugin上安装sbt插件并搜索sbt,然后查看->工具窗口->sbt控制台:


要启动控制台,请单击“播放”按钮,杀死头骨上的控制台。

我也遇到了同样的问题。我通过直接编写有问题库的
来修复它。这可以在
.idea/libraries/SBT\uuuuu jar.xml

中找到,是的,我已经读过(多次..d'oh!)以这种方式重建是必需的。有趣的是,我已经添加了几十次依赖项,而不必执行此手动(cmd行)重建。我不知道这件事有什么不同。。也许本地maven repo??AFA“来源=是?”:我需要“尽最大努力,但不要失败”。问号能做到吗?这些来源不适用于。。你猜对了。。卡夫卡,我想你指的是sbt gen创意。。另外:关于包含来源的“可选”方面呢?另外,似乎是sbt gen idea SourcesPS阅读我的所有评论:您的答案在两个方面仍然不正确。