Mapstruct与lombok的冲突问题

记一下在MapStruct结合lombok使用的冲突问题:

  • 编译时提示@Mapping配置的属性找不到。
  • 在生成Mapper的impl实现类时不能生成正确的bean的getter/setter语句。

解决方法:
需要在maven-compiler-plugin的annotationProcessorPaths中同时配置lombok及mapstruct-processor。
并且lombok配置需要在前面。

pom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>