我对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()
}
我已经尝试启用注解。
另外,我看到这个实现在另一个项目中工作,我试着简单地复制依赖项,但它仍然不起作用。
2条答案
按热度按时间wkyowqbh1#
@Slf4j注解用于另一个日志库。你有一个Log4j库的依赖项。然后你应该使用@Log4j Lombok注解。
另一方面,如果您想使用Slf 4j,则将依赖项更改为org.slf4j
s1ag04yj2#
如果您使用IntelliJ作为IDE,请在gradle文件中包含lombok插件:
https://plugins.gradle.org/plugin/io.freefair.lombok
在Eclipse中,您需要手动运行lombok jar文件来解决此问题。详细说明可用here