首頁 > Java > java教程 > 如何解決 MapStruct 與 Lombok 一起使用時的「未知屬性」錯誤?

如何解決 MapStruct 與 Lombok 一起使用時的「未知屬性」錯誤?

Patricia Arquette
發布: 2024-11-23 16:28:18
原創
576 人瀏覽過

How to Resolve MapStruct's

MapStruct 和Lombok 兼容性問題:結果類型中的未知屬性

問題陳述:

同時使用MapStruct 和Lombok時,會出現錯誤,指出「未知結果類型中的「屬性」。當MapStruct 由於Lombok 註解刪除了getter 和setter 而無法在目標DTO 類別中找到屬性時,就會出現此問題。

原因:

Maven 正在使用MapStruct 處理器,但不是Lombok 處理器。配置中的annotationProcessorPaths 指定應使用哪些處理器。

修改Maven 編譯器外掛程式配置以包含Lombok 和MapStruct註解處理器:

對於Lombok 版本1.18.16 及更高版本,也加入lombok-mapstruct-binding 依賴項:

選項2:新增MapStruct處理器作為依賴

加入mapstruct-processor依賴項並刪除annotationProcessorPaths:
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.6.1</version>
    <configuration>
        <source>${java.version}</source>
        <target>${java.version}</target>
        <annotationProcessorPaths>
            <path>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${org.projectlombok.version}</version>
            </path>
            <path>
                <groupId>org.mapstruct</groupId>
                <artifactId>mapstruct-processor</artifactId>
                <version>${org.mapstruct.version}</version>
            </path>
        </annotationProcessorPaths>
    </configuration>
</plugin>
登入後複製

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok-mapstruct-binding</artifactId>
    <version>0.2.0</version>
</dependency>
登入後複製
附加說明:

附加說明:

<dependencies>
    <dependency>
        <groupId>org.mapstruct</groupId>
        <artifactId>mapstruct-processor</artifactId>
        <version>${org.mapstruct.version}</version>
    </dependency>
登入後複製

附加說明中的註解處理,請將mapstruct-processor加入為提供的依賴項已知問題(IDEA-150621)。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板