现象
控制台显示编译成功,target/classes文件夹自动创建成功,xml等静态文件复制成功。
控制台日志显示编译java文件,没有任何报错信息,但是classes文件夹下却没有class文件生成
结论
lombok注解处理器问题,显式指定注解处理器
排查过程
已经排查过下列配置
- maven 配置检查正确
- jdk版本检查正确
- 控制台显示编译成功
- 源码目录使用maven默认的 src/main/java
- resources文件正确复制,class文件消失
可能有什么失败日志被隐藏,于是打开编译详细日志
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<!-- 添加详细日志 -->
<verbose>true</verbose>
<showWarnings>true</showWarnings>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
于是在控制台看到错误日志,显示Lombok存在问题。查阅资料后了解到maven默认会自动发现注解处理器,但在某些情况下会失效,此时需要显式配置 annotationProcessorPaths
在父pom中的完整
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source> <!-- 改为你的Java版本 -->
<target>1.8</target>
<!-- 添加注解处理器,当有多个时,注意按照正确顺序配置 -->
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>







网友评论