ホームページ >Java >&#&チュートリアル >MapStruct と Lombok を一緒に使用するとプロジェクトのコンパイルが失敗するのはなぜですか?

MapStruct と Lombok を一緒に使用するとプロジェクトのコンパイルが失敗するのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-01 09:09:18732ブラウズ

Why Does My Project Fail to Compile When Using MapStruct and Lombok Together?

プロジェクトがコンパイルされない MapStruct と Lombok の統合

問題:

MapStruct と Lombok を使用する場合ロンボク島でプロジェクトに参加、未知のプロパティによりエラーが発生@Getter および @Setter アノテーションを使用してゲッターとセッターが削除されるときの結果の型の「id」。

解決策:

この問題は、MapStruct のみを使用する Maven に起因します。 Lombok プロセッサではありません。これに対処するには、次の 2 つのオプションを使用できます。

オプション 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>

追加メモ:

  • Lombok 1.18.16 以降の場合は、次のように annotationProcessorPaths に lombok-mapstruct-binding 依存関係を含めます。オプションで1.
  • IntelliJ での注釈処理を有効にするために、MapStruct プロセッサが pom.xml の依存関係で「提供済み」としてマークされていることを確認します。
  • 上記の解決策を実装した後もこの問題が解決しない場合は、次のことを検証してください。 Java と MapStruct のバージョンには互換性があります。互換性情報については、最新の MapStruct ドキュメントを参照してください。

以上がMapStruct と Lombok を一緒に使用するとプロジェクトのコンパイルが失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。