0

我正在尝试学习如何使用 IntelliJ IDEA 构建“Spring Web”Web 应用程序,当我尝试使用“Spring Initializr”创建新项目时遇到了一个非常令人沮丧的问题。

出于某种原因,当我选择创建“Gradle 项目”、Java 或 Kotlin 时,我无法导入 org.slf4j.LoggerFactory

如果我手动添加导入语句,它不会解析,如果我尝试让 InteliJ 自动添加导入,它会添加以下内容......

导入 com.sun.org.slf4j.internal.LoggerFactory

这满足了编辑器,但它不会编译。它错误...

符号在模块“java.xml.crypto”中声明,它不导出包“com.sun.org.slf4j.internal”

相反,如果我创建一个“Maven 项目”,无论是 Kotlin 还是 Java,它都会按预期工作。

我将 spring initializr 中的其他设置设置为默认值,Spring Boot=2.4.2,Java=11

IntelliJ IDEA 说没有可用的更新。

我进行了各种尝试手动将 slf4j 依赖项添加到 build.gradle(对于 Java)或 build.gradle.kts(对于 Kotlin),但我所做的一切都没有产生任何影响。

我还为 Spring Boot 和 Java 版本尝试了各种不同的选项,同样没有任何区别。

更新...

我已经确认它只发生在我的一台计算机上,即我的主要开发台式计算机上。我的笔记本电脑工作正常。

我找不到 2 个 IDEA 安装之间的任何不同之处。

到目前为止我已经尝试修复它的事情......

  1. 使缓存无效/重新启动
  2. 管理 IDE 设置 -> 恢复默认设置
  3. 删除和重新添加 JDK
  4. 卸载并重新安装 IntelliJ IDEA

我已经尝试了我能想到的一切来解决这个问题,但问题仍然存在。

基本上我不能在任何新的 Gradle Spring 项目中使用日志记录。它只是不会加载 org.slf4j 库。

更新 2...

问题的本质并不是我最初认为的那样。事实证明,通过正确的导入,代码可以正常编译和运行,但 IDE 将其报告为未解析。

因此,这似乎只是 IDE 的智能感知问题。这似乎不那么严重,但是让编辑器错误地显示错误仍然很不方便。

4

1 回答 1

1

在确定问题仅出在 IDE 编辑器 intellisense 上,而不是代码依赖项或项目上后,我最终能够通过关闭 IDE 来解决它,然后删除系统文件夹“C:\Users<user>\AppData \Local\JetBrains\IntelliJIdea2020.3"

重启 IntelliJ IDEA 后,文件夹自动重新创建,问题自行解决。

于 2021-02-09T05:44:05.933 回答