【发布时间】:2019-04-01 13:59:45
【问题描述】:
这是 IntelliJ 2018.2.5 社区版中的多模块 SprintBoot 2.0.3 项目,使用: Lombok,Spring-Boot-Starter
Logback 正在运行,maven install 提供 BUILD SUCCESS 和 spring-boot:run 成功运行网站。
我的父 pom.xml 有:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
<relativePath/>
</parent>
<modules>
<module>core</module>
<module>console</module>
<module>web</module>
</modules>
<packaging>pom</packaging>
<properties>
<java.version>10</java.version>
</properties>
核心 pom 有:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
当然 spring-boot-starter-logging 包含 logback-classic。
尽管日志记录工作正常(控制台输出所有预期的日志记录消息),但 Intellij 在我的所有类上绘制红线并导致分散注意力的“无法解析符号'日志'”错误(感知错误):
我尝试将 Spring Boot 的日志记录依赖手动添加到我的项目 pom、core pom 和 web pom,但行为没有改变:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>
IntelliJ 肯定设置为 Java 10:
让 IntelliJ 识别 logback 由 SpringBoot 处理的正确方法是什么?
确实如此。答案在这里: https://stackoverflow.com/a/27430992/921587
具体来说: 1. 首选项 -> 构建、执行、部署 -> 编译器 -> 注释处理器 -> 选中“启用注释处理”(在我的情况下,此步骤似乎是可选的。关键步骤是第 2 步) 2.首选项->插件->点击->“浏览存储库”->搜索Lombok->安装 3.重启IntelliJ
【问题讨论】:
-
您是否为 Lombok 安装了 Intellij 插件?此外,您需要将 Lombok 添加为具有“已提供”范围的依赖项
-
@aka-one 是的,先生,Lombok 依赖项是在核心 pom 中定义的(添加到问题中)。未提供范围是因为 Lombok 现在与 Java 10 兼容,因此 maven 会自动获取兼容版本。
-
我没有看到我的解决方案,因为我以为我已经这样做了。最近不得不吹掉我的 IntelliJ 偏好,因为它在闪屏上崩溃了。
标签: java maven spring-boot intellij-idea lombok