@Slf4j Lombok注解不适用于Java + Gradle

dohp0rv5  于 2023-06-23  发布在  Java
关注(0)|答案(2)|浏览(189)

我对Java相当陌生,试图用lombok提供的@Slf4j注解实现一个日志记录器。从我的理解来看,它应该相当简单,只需要为类提供注解,它将为该类创建方法,但它似乎不起作用。
我的代码看起来像这样:

package MyApp;

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class MyApp {
    public static void main(String[] args) {
        log.info("hello"); IDEA gives this error: Cannot resolve method 'info(String)'
    }
}

当我尝试运行代码时,我得到了这样的结果:错误:包org.slf4j不存在@Slf4j ^
我的build.gradle看起来像这样:

plugins {
    id 'java'
}

group 'org.example'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {

    implementation 'org.apache.logging.log4j:log4j:2.20.0'
    compileOnly 'org.projectlombok:lombok:1.18.28'
    annotationProcessor 'org.projectlombok:lombok:1.18.28'
    
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
}

test {
    useJUnitPlatform()
}

我已经尝试启用注解。
另外,我看到这个实现在另一个项目中工作,我试着简单地复制依赖项,但它仍然不起作用。

wkyowqbh

wkyowqbh1#

@Slf4j注解用于另一个日志库。你有一个Log4j库的依赖项。然后你应该使用@Log4j Lombok注解。
另一方面,如果您想使用Slf 4j,则将依赖项更改为org.slf4j

s1ag04yj

s1ag04yj2#

如果您使用IntelliJ作为IDE,请在gradle文件中包含lombok插件:
https://plugins.gradle.org/plugin/io.freefair.lombok
在Eclipse中,您需要手动运行lombok jar文件来解决此问题。详细说明可用here

相关问题