therapi-runtime-javadoc-scribe与Lombok冲突致Maven构建失败
问题原因
当你在maven-compiler-plugin中显式配置annotationProcessorPaths后,插件会默认禁用从项目依赖中自动发现注解处理器的机制。你当前仅在注解处理器路径中配置了therapi-runtime-javadoc-scribe,没有加入Lombok的注解处理器,导致lombok.extern.slf4j.Slf4j这类Lombok提供的注解完全不会在编译期生效,代码里用到的log对象根本不会被生成,最终编译失败抛出MojoFailureException。
修复方法
在annotationProcessorPaths节点中补充Lombok的路径配置即可,由于Spring Boot的父POM已经对Lombok版本做了统一管理,这里不需要手动指定版本号,直接引用即可。
修改后的maven-compiler-plugin配置如下:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <annotationProcessorPaths> <path> <groupId>com.github.therapi</groupId> <artifactId>therapi-runtime-javadoc-scribe</artifactId> <version>0.13.0</version> </path> <!-- 新增Lombok注解处理器配置 --> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </path> </annotationProcessorPaths> </configuration> </plugin>
注意:后续如果项目中还用到其他需要编译期注解处理的组件(比如
spring-boot-configuration-processor),都需要同步加到这个路径列表里,否则同样会出现注解不生效的问题。
验证
配置修改完成后,清空之前的编译缓存,重新执行构建命令即可正常打包:
mvn clean package -Dmaven.test.skip=true
内容的提问来源于stack exchange,提问作者Mashukur Rahman
相关产品推荐
相关产品推荐

