MapperStruct实现类为空
问题描述:
MapperStruct生成的实现了为空
按照在MapperStruct官网Installation – MapStruct中的方法配置后,生成的实现了是空的,如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| @Override public DeployHistory toEntity(DeployHistoryDto arg0) { if ( arg0 == null ) { return null; } DeployHistory deployHistory = new DeployHistory();
return deployHistory; }
@Override public DeployHistoryDto toDto(DeployHistory arg0) { if ( arg0 == null ) { return null; } DeployHistoryDto deployHistoryDto = new DeployHistoryDto();
return deployHistoryDto; }
|
原因分析:
使用的lombok版本过高
解决方案:
我在查阅了很多资料后终于解决问题了。需要在pom.xml中添加插件lombok-mapstruct-binding,完整的配置如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| <properties> <lombok.version>1.18.24</lombok.version> <mapstruct.version>1.5.5.Final</mapstruct.version> <lombok-mapstruct-binding.version>0.2.0</lombok-mapstruct-binding.version> </properties> <dependencies> <dependency> <groupId>org.mapstruct</groupId> <artifactId>mapstruct</artifactId> <version>${mapstruct.version}</version> </dependency> <dependency> <groupId>org.mapstruct</groupId> <artifactId>mapstruct-processor</artifactId> <version>${mapstruct.version}</version> <optional>true</optional> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>17</source> <target>17</target> <annotationProcessorPaths> <path> <groupId>org.mapstruct</groupId> <artifactId>mapstruct-processor</artifactId> <version>${mapstruct.version}</version> </path> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${lombok.version}</version> </path> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok-mapstruct-binding</artifactId> <version>${lombok-mapstruct-binding.version}</version> </path> </annotationProcessorPaths> </configuration> </plugin> </plugins> </build>
|
欢迎大家关注我的号和博客