首页 >Java >java教程 >在 Lombok 中使用 MapStruct 时如何修复'未知属性”错误?

在 Lombok 中使用 MapStruct 时如何修复'未知属性”错误?

Susan Sarandon
Susan Sarandon原创
2024-12-06 05:21:09468浏览

How to Fix

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn