在网上搜了一下,看到一个标题,mapstruct和lombok之类的,突然想起来之前我也遇到过这个问题,就是因为这两个框架同时使用,但是因为没有指定编译顺序,mapstruct先编译,lombok后编译,get set还没有编译出来,mapstruct当然无法通过get set去生成实现类。在这种情况下要在Pom文件中指定编译顺序,具体如下:
<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>${org.mapstruct.version}</version> </path> </annotationProcessorPaths> </configuration> </plugin>
在lombok和mapstruct同时使用时,一定要注意将编译顺序指定一下,不然mapstruct无法生成实现类无法使用。