SpringBoot多模块项目中Lombok依赖传递失败,@Slf4j报错如何解决?

SpringBoot多模块项目中Lombok依赖传递失败,@Slf4j报错如何解决?

springBoot多模块项目:Lombok依赖传递及@Slf4j报错解决方案

本文分析在SpringBoot多模块项目中,父模块已引入Lombok依赖,但子模块(例如common-api模块)却出现@Slf4j报错的问题,并提供解决方案。部分子模块编译通过,部分子模块却提示缺少相关jar包,这种现象的原因和解决方法如下:

问题现象:

一个多模块SpringBoot项目,父工程pom文件已正确引入Lombok依赖(如下图所示)。然而,某些子模块(例如common-api)使用@Slf4j注解时,编译器报错,提示找不到相关jar包。其他子模块则正常使用@Slf4j,无报错。

问题根源及解决方法

问题并非Lombok依赖传递失败,而是子模块缺少必要的日志实现。@Slf4j注解本身不包含日志实现,需要依赖slf4j-api以及具体的日志实现(如logbacklog4j)。

解决方法是在common-api模块中引入spring-boot-starter依赖。spring-boot-starter包含slf4j-api和logback等日志实现,从而解决@Slf4j注解找不到jar包的问题。

额外提示:

  • ide问题:有时IDE(如IntelliJ idea)可能出现异常导致编译错误,重启IDE或许能解决一些莫名其妙的问题。
  • 依赖版本冲突:确保所有模块的Lombok版本一致,避免版本冲突导致的问题。

通过添加必要的日志依赖,即可解决@Slf4j报错问题,确保Lombok在所有模块中正常工作。

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享