MapStruct 和 Lombok 集成:解决“未知属性”错误
将 MapStruct 与 Lombok 注释一起使用时,您可能会遇到错误,指出“结果类型中的未知属性。”出现此错误的原因是 Maven 仅使用 MapStruct 处理器,而不使用 Lombok 处理器。
选项 1:修改 Maven 编译器插件
更新 maven-compiler-plugin 配置包括 Lombok 和 MapStruct 注释处理器paths:
<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>${org.projectlombok.version}</version> </path> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok-mapstruct-binding</artifactId> <version>0.2.0</version> </path> <path> <groupId>org.mapstruct</groupId> <artifactId>mapstruct-processor</artifactId> <version>${org.mapstruct.version}</version> </path> </annotationProcessorPaths> </configuration> </plugin>
选项 2:将 MapStruct 声明为依赖项
或者,将 mapstruct-processor 依赖项添加到主依赖项部分并删除注释ProcessorPaths:
<dependency> <groupId>org.mapstruct</groupId> <artifactId>mapstruct-processor</artifactId> <version>${org.mapstruct.version}</version> </dependency>
其他注意事项IntelliJ
要防止 IntelliJ 错误,请将映射结构处理器添加为提供的依赖项:
<dependency> <groupId>org.mapstruct</groupId> <artifactId>mapstruct-processor</artifactId> <version>${org.mapstruct.version}</version> <scope>provided</scope> </dependency>
Lombok 版本注意事项
对于 Lombok 版本 1.18.16 及更高版本,您将需要 lombok-mapstruct-binding 依赖项确保与 MapStruct 正确集成。
以上是在 Lombok 中使用 MapStruct 时如何修复'未知属性”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!