java - [错误] : cannot find symbol variable log when building with maven and lombok

标签 java maven lombok java-11 intellij-lombok-plugin

我正在尝试使用 maven 和 lombok 的 @Slf4j Logger 构建 Java 11 项目,但 maven 无法识别 log变量。 IntelliJ 确实并且能够构建该项目。

错误是

[ERROR]: cannot find symbol variable log 

项目和模块 SDK 都是 Java 11。Lombok 版本是 1.18.2:
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.12</version>
    <scope>provided</scope>
</dependency>

我的 Maven 编译器设置:
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>11</source>
                <target>11</target>
                <forceJavacCompilerUse>true</forceJavacCompilerUse>
                <annotationProcessorPaths>
                    <path>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                        <version>1.18.12</version>
                    </path>
                </annotationProcessorPaths>
            </configuration>
        </plugin>
    </plugins>
</build>

我已经尝试过:
  • 关闭并重新打开注释处理
  • 重新安装 Lombok 插件
  • 清除 .m2/repository 文件夹
  • 手动添加 lombok.jar 作为注释处理器
  • 将 Lombok 路径添加到 maven-compiler-plugin注释处理器列表
  • 最佳答案

    这是使用 @Slf4j 的一个非常小的示例配置。 lombok 日志注释。

    你需要一个日志外观和一个实现,在这种情况下,我将使用 slf4j (作为立面)和logback (作为实现)。

    pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>org.example</groupId>
        <artifactId>untitled</artifactId>
        <version>1.0-SNAPSHOT</version>
    
        <properties>
            <maven.compiler.source>11</maven.compiler.source>
            <maven.compiler.target>11</maven.compiler.target>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.12</version>
                <scope>provided</scope>
                <optional>true</optional>
            </dependency>
    
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>1.7.30</version>
            </dependency>
    
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>1.2.3</version>
            </dependency>
        </dependencies>
    </project>   
    

    main.java
    import lombok.extern.slf4j.Slf4j;
    
    @Slf4j
    public class Main {
    
        public static void main(String[] args) {
            log.debug("Hello");
        }
    }
    

    如果遇到问题,请始终尝试强制在项目文件夹中运行 maven 依赖项更新 mvn -U clean package并在您的 IDE 中重新导入 maven 项目

    See screenshot

    关于java - [错误] : cannot find symbol variable log when building with maven and lombok,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61478335/

    相关文章:

    java - 方法调用 : Collections. emptyList() 在不同情况下显示不同的行为?

    java - Fragment 中的 ListView 和 Tabwidget

    java - request.getServletPath()返回的Servlet路径是否保证规范化?

    java - Maven3 全局依赖排除

    java - Maven 与查询 DSL 集成

    java - intellij idea 报告无法为自定义 spring-boot-starter 模块 Autowiring beans

    java - 通过成员注解获取外部类

    java - 在 Kotlin 中生成 toString() 方法的速记语法(用于非数据类)

    java - 构造函数 Category(String, String) 不可见 - 使用 lombok 为某些字段创建构造函数?

    Java记录与 Lombok @Value