Lombok和MapStruct冲突导致无法生成正确的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>