@Slf4j拾取了错误的Slf4j接口



我有一个gradle应用程序,它包括以下内容:

implementation 'ch.qos.logback:logback-classic'
implementation 'ch.qos.logback.contrib:logback-json-classic:0.1.5'
implementation 'ch.qos.logback.contrib:logback-jackson:0.1.5'
...
implementation 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'

在我的课上我有:

import lombok.extern.slf4j.Slf4j;
@Slf4j
public class ...

然而,当ctrl+单击任何log.xxx语句时,它会将我带到一个slf4j,它是我拥有的另一个库的一部分,而不是主lombok库,我不知道为什么,因为导入来自lombok。没有这个库的其他模块转到lombok>slf4j。

它是有效的,但有办法以某种方式强制它吗?

Lombok不包括Slf4j,也不依赖它。

你必须自己提供。

如果添加@Slf4j,lombok将生成依赖于某些slf4j-api版本的编译时间和运行时可用性的代码,您必须自己提供这些代码。

如果您在log.warn("foo")中点击warn,IDE将带您进入所提供的依赖项中的warn方法,通常是在slf4j-api-<version>.jar中。如果您单击log部分,它会将您带到类顶部的@Slf4j注释。

免责声明:我是龙目项目的维护者。

最新更新