首页 > 解决方案 > IntelliJ 无法识别某些 Spring 包

问题描述

在我的其他 API 项目中,IntelliJ 突然停止识别来自包 org.springframework.http 和 org.springframework.web 的导入。例如,当我尝试创建 ResponseEntity 的实例或使用 @RestController 注释时,它会给我红色的波浪线。当我将光标悬停在相应的导入语句下方时,我还会看到带有“无法解析符号”消息的红色波浪线。

我单击灯泡并选择“添加 Maven 依赖项”,但 IntelliJ 找不到要添加的任何内容。即使可以,正确的 Maven 依赖项已经存在于 pom.xml 中,但它们是灰色的,就好像它们没有在任何地方引用一样。手动指定不同版本的依赖项没有任何作用。重新导入项目没有任何作用。再次克隆 repo 并开始一个新项目并没有帮助。也没有使缓存失效、删除整个 .m2 目录、更新 IntelliJ、重新启动我的机器或摆弄解释器。

代码按预期构建和运行,在终端和 IDE 中都没有任何问题。我不知道为什么 IntelliJ 看起来如此混乱。这只发生在我的机器上,我想不出我能做些什么来导致它。团队中没有其他人看到过这个问题。它并不孤立于任何特定的回购。每当我尝试从这些特定包导入时,都会发生这种情况。这一周一直困扰着我,我的队友和我一样困惑。有什么建议么?

附加信息:

更新

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

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

让我重申一下,代码没有任何问题。IntelliJ 可以完美地构建和运行它,即使是所有的红色波浪线。编辑器出了点问题。我在下面包含了当前状态的屏幕截图。

IntelliJ 说

解决了

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

标签: javaspringmavenintellij-idea

解决方案


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

尝试以下操作:

(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


推荐阅读