java - IntelliJ 无法识别某些 Spring 包
问题描述
在我的其他 API 项目中,IntelliJ 突然停止识别来自包 org.springframework.http 和 org.springframework.web 的导入。例如,当我尝试创建 ResponseEntity 的实例或使用 @RestController 注释时,它会给我红色的波浪线。当我将光标悬停在相应的导入语句下方时,我还会看到带有“无法解析符号”消息的红色波浪线。
我单击灯泡并选择“添加 Maven 依赖项”,但 IntelliJ 找不到要添加的任何内容。即使可以,正确的 Maven 依赖项已经存在于 pom.xml 中,但它们是灰色的,就好像它们没有在任何地方引用一样。手动指定不同版本的依赖项没有任何作用。重新导入项目没有任何作用。再次克隆 repo 并开始一个新项目并没有帮助。也没有使缓存失效、删除整个 .m2 目录、更新 IntelliJ、重新启动我的机器或摆弄解释器。
代码按预期构建和运行,在终端和 IDE 中都没有任何问题。我不知道为什么 IntelliJ 看起来如此混乱。这只发生在我的机器上,我想不出我能做些什么来导致它。团队中没有其他人看到过这个问题。它并不孤立于任何特定的回购。每当我尝试从这些特定包导入时,都会发生这种情况。这一周一直困扰着我,我的队友和我一样困惑。有什么建议么?
附加信息:- Java 11.0.6
- 最新版本的 Maven 和 IntelliJ
- macOS 莫哈韦
更新
我决定再次删除我的整个 .m2 目录和我的项目的 .idea 目录。在过去的一周里,我已经多次这样做了,但没有任何结果。这一次,当我重新导入项目时,我发现前面提到的 org.springframework.web 和 org.springframework.http 导入现在可以正确识别。但是,IntelliJ 现在无法识别其他一些导入,例如 lombok。
实际上,我上周遇到了这个特定版本的问题几个小时。然后我稍作休息,打开笔记本电脑,发现一切都神奇地恢复了正常。几天后,我开始遇到上面描述的错误。这些无法识别的导入似乎随机出现和消失,无论我正在从事的项目或对代码的任何更改。
让我重申一下,代码没有任何问题。IntelliJ 可以完美地构建和运行它,即使是所有的红色波浪线。编辑器出了点问题。我在下面包含了当前状态的屏幕截图。
解决了
我决定卸载并重新安装 IntelliJ。这解决了这个问题。
解决方案
发生这种情况的原因有很多:
尝试以下操作:
(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
推荐阅读
- javascript - AJAX 发送发布请求 REST API(显示临时标头)
- javascript - 有什么方法可以结合使用 JSPDF 和 html2canvas 在移动浏览器上加快 PDF 下载速度?
- java - 错误:带有参数的“$1”postgresql 查询处或附近的语法错误
- node.js - 如何在中间件中获取响应体?
- azure-data-lake - 获取现有文件并将数据附加到现有文件中——U-SQL
- audio - 使用ffmpeg提取视频文件的英文音频
- visual-studio-code - 如何在 VS 代码的活动栏中创建自己的插件?
- json - 如何让自托管 wcf 接受 REST/JSON?
- python - 无法使用在 GPU 实例上训练的深度学习 RNN 模型来推断仅 CPU 实例
- c# - "foreach (var line in fileInfo)" 只读取第一行