参考:https://blog.csdn.net/qq122516902/article/details/87259752
官网FAQ:https://mapstruct.org/faq/#Can-I-use-MapStruct-together-with-Project-Lombok
git代码:https://github.com/mapstruct/mapstruct-examples/tree/master/mapstruct-lombok
按照例子编写过程遇到的问题是
lombok找不到get-set报错:No property named “age” exists in source parameter(s). Did you mean
“null”?
POM中核心的东西(lombok不一定要用最新的,不然就会报上面的错误。主要是按照官网例子引用版本即可)
<properties>
<org.mapstruct.version>1.4.1.Final</org.mapstruct.version>
<org.projectlombok.version>1.18.12</org.projectlombok.version>
</properties>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<!--解决使用lombok找不到get-set报错:No property named "age" exists in source parameter(s). Did you mean
"null"?-->
<!--是因为Maven仅使用MapStruct处理器,而不使用Lombok处理器。
annotationProcessorPaths 告诉maven它应该使用哪个处理器。-->
<annotationProcessorPaths>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${org.mapstruct.version}</version>
</path>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${org.projectlombok.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<dependencies>
<!-- 导入mapstruct 所需的jar包 -->
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>${org.mapstruct.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${org.projectlombok.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
<version>4.13.1</version>
</dependency>
</dependencies>