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>
浙公網安備 33010602011771號