MapStruct 和 Lombok 集成,项目未编译
问题:
使用 MapStruct 和Lombok 一起在一个项目中,由于未知属性“id”而出现错误使用 @Getter 和 @Setter 注解删除 getter 和 setter 时的结果类型。
解决方案:
问题源于 Maven 仅使用 MapStruct 处理器而不是 Lombok处理器。为了解决这个问题,有两个选项:
选项 1:将 Lombok 依赖添加到注释处理器路径
修改 pom.xml 中的 maven-compiler-plugin 配置为将 Lombok 依赖项包含在annotationProcessorPaths:
<!-- Maven Compiler Configuration --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.6.1</version> <configuration> <!-- ... Existing Configuration Snippet --> <annotationProcessorPaths> <!-- Lombok Dependency --> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${org.projectlombok.version}</version> </path> <!-- MapStruct Dependency --> <path> <groupId>org.mapstruct</groupId> <artifactId>mapstruct-processor</artifactId> <version>${org.mapstruct.version}</version> </path> </annotationProcessorPaths> </configuration> </plugin>
选项 2:添加 MapStruct-Processor 依赖
或者,将 mapstruct-processor 依赖添加到 pom.xml 中的依赖项并删除annotationProcessorPaths:
<!-- Maven Dependencies --> <dependencies> <!-- ... Existing Dependencies Snippet --> <!-- MapStruct Processor Dependency --> <dependency> <groupId>org.mapstruct</groupId> <artifactId>mapstruct-processor</artifactId> <version>${org.mapstruct.version}</version> </dependency> </dependencies>
附加说明:
以上是为什么我的项目同时使用 MapStruct 和 Lombok 时无法编译?的详细内容。更多信息请关注PHP中文网其他相关文章!