IntelliJ无法识别某些Spring软件包

时间:2020-08-01 00:18:48

标签: java spring maven intellij-idea

在我其余的API项目中,IntelliJ突然停止识别来自软件包org.springframework.http和org.springframework.web的导入。例如,当我尝试创建ResponseEntity实例或使用@RestController批注时,它会给我带来红色的波浪。当我将鼠标悬停在相应的import语句下时,我也会得到红色的squiggley,消息为“无法解析符号”。

我单击灯泡并选择“添加Maven依赖项”,但是IntelliJ找不到要添加的任何东西。即使可能,适当的Maven依赖关系也已经存在于pom.xml中,但是它们变灰了,就像没有在任何地方引用它们一样。手动指定依赖关系的不同版本不会执行任何操作。重新导入项目不会执行任何操作。再次克隆存储库并开始新项目并没有帮助。使缓存无效,删除整个.m2目录,更新IntelliJ,重新启动计算机或摆弄解释器都没有。

该代码可以按预期的方式构建和运行,并且在终端和IDE中都不会出现任何问题。我不知道为什么IntelliJ看起来如此困惑。这仅发生在我的机器上,我想不出能做的任何事情。团队中没有其他人看到过这个问题。它不限于任何特定的回购。每当我尝试从这些特定的软件包导入时,都会发生这种情况。这整个星​​期困扰着我,我的队友也和我一样困惑。有什么建议吗?

附加信息:
  • Java 11.0.6
  • 最新版本的Maven和IntelliJ
  • macOS Mojave

更新

我决定再次删除我的整个.m2目录和项目的.idea目录。在过去的一周中,我已经多次进行了此操作,但没有结果。这次,当我重新导入项目时,我发现前面提到的org.springframework.web和org.springframework.http导入现在可以正确识别。但是,IntelliJ现在无法识别其他一些导入,例如龙目岛。

上周我实际上有这个问题的特定版本几个小时。然后我休息了一会儿,打开笔记本电脑,发现一切都恢复了正常。几天后,我开始遇到上述错误。无论我正在从事的项目还是对代码进行任何更改,这些无法识别的导入似乎都是随机出现或消失的。

让我重申一下,代码没有错。 IntelliJ可以完美地构建和运行它,即使使用了所有红色的波浪形。编辑器发生了一些奇怪的事情。我在下面提供了当前状态的屏幕截图。

IntelliJ says "Cannot resolve symbol"

已解决

我决定卸载并重新安装IntelliJ。解决了这个问题。

2 个答案:

答案 0 :(得分:0)

发生这种情况的原因有很多:

尝试以下操作:

(Mac users) Right click on the project -> Maven -> reimport

如果这不起作用:

Delete `.idea` folder and re import the project.
Its located in the root of the project. like this one

za$ ls .idea/
.name          compiler.xml   encodings.xml  httpRequests/  misc.xml       vcs.xml        workspace.xml  

如果这不起作用,请确保已加载jar,可以将其列为依赖项,也可以手动将其导入。看到以下问题:

https://stackoverflow.com/questions/1051640/correct-way-to-add-external-jars-lib-jar-to-an-intellij-idea-project

如果这不起作用:

./m2删除jar的所有版本(存在问题的版本) 夹。或确保在pom.xml

中指定特定版本

答案 1 :(得分:0)

在此处Exclude from import and Completion参考图像链接

在Intellij设置文件->设置中,转到编辑器->常规->自动导入-> Java部分->从导入和完成中排除。删除那些您不小心放在那里的课程。可能发生过,因为当Intellij提出自动建议时,您曾经按错了按钮。

实际上,几天前我遇到了同样的问题。这就是我解决问题的方式。