Lombok和MapStruct冲突

2023-03-14,,

LombokMapStruct冲突导致无法生成正确的class文件。

lombok自动生成getset等冗余代码。

MapStruct对象copy。传统的BeanUtils.copy等利用的反射原理,效率较低,MapStruct使用的是getter/setter方法,效率高。

因为两者都利用了Annotation processor原理,在编译期自动生成class文件。

需要在pom.xml中分别指定编译使用的插件

 <build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<annotationProcessorPaths>
<!-- Lombok 在编译时插件 -->
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
<!-- MapStruct 在编译插件 -->
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>

 

Lombok和MapStruct冲突的相关教程结束。

《Lombok和MapStruct冲突.doc》

下载本文的Word格式文档,以方便收藏与打印。