在IntelliJ中使用Slf4j注释和Lombok时,"log has private access"错误

Die*_*nné 7 java slf4j lombok intellij-14

我正在使用Lombok向我的Java应用程序添加日志记录.我已经使用了一段时间,但自从我将我的IDE从IntelliJ 13社区版升级到14 Ultimate后,我得到以下编译错误(使用maven):

error: log has private access in SesameServer
Run Code Online (Sandbox Code Playgroud)

此错误源自以下的子类SesameServer:

@Slf4j
public class AnnotatorServices extends SesameServer {

  @Override
  protected void initialiseRDFStoreManager(Series<Parameter> parameters) throws RepositoryConfigException, RepositoryException {
      log.info("<< ------ Annotator Services ------- >>");
  }
}
Run Code Online (Sandbox Code Playgroud)

当然SesameServer也使用@Slf4j注释来添加日志记录.该@Slf4j注释添加一行:

 private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(SesameServer.class);
Run Code Online (Sandbox Code Playgroud)

在其中使用它的类(包括SesameServerAnnotatorServices其中SesameServer.class被当然取代AnnotatorServices.class).显然编译器认为我想使用log变量SesameServer而不是AnnotatorServices(两个类都有相同名称的变量).

我该如何防止这个问题,即SesameServer.log用来代替AnnotatorServices.log

小智 5

注意:对于在谷歌上搜索此错误消息的其他人来说,这仍然会出现;所以添加我的修复希望这会有所帮助。

pom.xml.

由于我的父类SesameServer已经构建在不同的模块中并使用了依赖项;当我编译我的AnnotatorServices我也看到了error: log has private access in SesameServer


为了修复它,我只需要为包含AnnotatorServices.

在 IntelliJ Community 2017.1.6 中,复选框位于:

  1. 文件 -> 设置
  2. “构建、执行部署 -> 编译器 -> 注释处理器”
  3. 勾选“启用注释处理”


Gan*_*nan 0

更新您的 lombok 插件。有时idea不显示新的更新,所以转到设置=>插件并搜索“lombok”单击“更新”并重新启动idea