我正在尝试学习如何使用 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 安装之间的任何不同之处。
到目前为止我已经尝试修复它的事情......
- 使缓存无效/重新启动
- 管理 IDE 设置 -> 恢复默认设置
- 删除和重新添加 JDK
- 卸载并重新安装 IntelliJ IDEA
我已经尝试了我能想到的一切来解决这个问题,但问题仍然存在。
基本上我不能在任何新的 Gradle Spring 项目中使用日志记录。它只是不会加载 org.slf4j 库。
更新 2...
问题的本质并不是我最初认为的那样。事实证明,通过正确的导入,代码可以正常编译和运行,但 IDE 将其报告为未解析。
因此,这似乎只是 IDE 的智能感知问题。这似乎不那么严重,但是让编辑器错误地显示错误仍然很不方便。