一、编译时冲突问题
- 属性找不到 现象:@Mapping注解配置的属性编译报错"未找到"
原因:Lombok生成的getter/setter未及时被MapStruct识别
解决:添加lombok-mapstruct-binding插件确保生成顺序同步 - 空对象问题 现象:生成的对象属性未被正确拷贝 触发场景:父类属性可拷贝,子类属性为空
解决:检查依赖顺序,确保Lombok在MapStruct前处理
二、版本兼容性要求
三、关键配置说明
四: 实际配置拆解
<!-- 1. 依赖声明 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
<scope>provided</scope> <!-- 编译阶段处理后不会打包进最终产物 -->
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.5.5.Final</version> <!-- 当前稳定版本 -->
</dependency>
<!-- 2. 处理器链配置 -->
<annotationProcessorPaths>
<!-- Lombok处理器 -->
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
</path>
<!-- MapStruct代码生成器 -->
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.5.5.Final</version>
</path>
<!-- 关键桥梁:让两个处理器能协同工作 -->
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-mapstruct-binding</artifactId>
<version>0.2.0</version>
</path>
</annotationProcessorPaths>
五:💡 若编译后未生成对应文件,建议:
检查IDEA设置:File → Settings → Build → Compiler → Annotation Processors
执行强制更新:mvn clean compile -U