使用mapstructs並沒有生成實現類


@[TOC](無目錄)

# 吐槽
問題描述:隨便找了一個博客,照着配一下mapstructs。就離譜,完全照着博主的配,編譯不報錯,一使用就報錯。[第三十章:SpringBoot使用MapStruct自動映射DTO](https://blog.csdn.net/weixin_42033269/article/details/80026085) 我使用的是Spring,自動注入類,類沒注入進去,會有紅色下划線提醒。又改成默認配置去導入,可以導入了但是一使用就報找不到DTOMapper異常。然后去[官網](https://mapstruct.org/documentation/installation/)看了一下,發現和我照着博文配的也差不多,就是版本高了一些
```java
...
<properties>
<org.mapstruct.version>1.4.2.Final</org.mapstruct.version>
</properties>
...
<dependencies>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>${org.mapstruct.version}</version>
</dependency>
</dependencies>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source> <!-- depending on your project -->
<target>1.8</target> <!-- depending on your project -->
<annotationProcessorPaths>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${org.mapstruct.version}</version>
</path>
<!-- other annotation processors -->
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>
```
改了之后還是錯,又是一翻找。發現有的人配的是這樣的maven,改了之后居然注解直接報錯了。又找了一下,發現在2019版本之前的idea需要這樣配,2019和之后就不需要了。。。
```xml
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-Java8</artifactId>
<version>${org.mapstruct.version}</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.2.0.Beta2</version>
</dependency>
```
再找吧,發現可能是Lombok的問題,他倆之間有沖突。。。懵逼!!。
最終也是找到了一篇博客,照着那樣寫也是成功的生成了mapper接口的實現類,真的難搞,就這我找了兩小時!!

# 解決方法
[MapStruct - Lombok & Maven 版本關系](https://lux-sun.blog.csdn.net/article/details/114011859)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM