mapstruct是在编译时自动生成接口实现类的,可以在接口的同文件夹下看到。
如果没有生成实现类,且同时使用了lombok注解,那么有可能是两个编译时框架的加载顺序问题导致的。在lombok还没有注入时,mapstruct加载不到getset,所以生成实现类失败。所以指定一下两个框架的加载顺序就可以了。
修改pom.xml文件的以下片段就可以了,如果是其他情况再分析。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<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>