首頁 >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>

其他注意事項🎜>

其他注意事項>

<dependency>
  <groupId>org.mapstruct</groupId>
  <artifactId>mapstruct-processor</artifactId>
  <version>${org.mapstruct.version}</version>
  <scope>provided</scope>
</dependency>
要防止IntelliJ錯誤,請將映射結構處理器加入為提供的依賴項:

Lombok 版本注意事項

對於Lombok 版本1.18.16 及更高版本,您將需要lombok-mapstruct-binding 依賴項確保與MapStruct 正確整合。

以上是在 Lombok 中使用 MapStruct 時如何修復「未知屬性」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn