Maison >Java >javaDidacticiel >Comment corriger les erreurs « Propriété inconnue » lors de l'utilisation de MapStruct avec Lombok ?

Comment corriger les erreurs « Propriété inconnue » lors de l'utilisation de MapStruct avec Lombok ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-06 05:21:09468parcourir

How to Fix

Intégration de MapStruct et Lombok : résolution de l'erreur « Propriété inconnue »

Lors de l'utilisation de MapStruct avec les annotations Lombok, vous pouvez rencontrer une erreur indiquant " Propriété inconnue dans le type de résultat." Cette erreur se produit car Maven utilise uniquement le processeur MapStruct et non le processeur Lombok.

Option 1 : Modifier le plugin du compilateur Maven

Mettre à jour la configuration du plugin maven-compiler-plugin pour inclure à la fois le processeur d'annotations Lombok et 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>

Option 2 : déclarer MapStruct en tant que dépendance

Vous pouvez également ajouter la dépendance mapstruct-processor à la section des dépendances principales et supprimer l'annotationProcessorPaths :

<dependency>
  <groupId>org.mapstruct</groupId>
  <artifactId>mapstruct-processor</artifactId>
  <version>${org.mapstruct.version}</version>
</dependency>

Considérations supplémentaires pour IntelliJ

Pour éviter les erreurs IntelliJ, ajoutez le mapstruct-processor en tant que dépendance fournie :

<dependency>
  <groupId>org.mapstruct</groupId>
  <artifactId>mapstruct-processor</artifactId>
  <version>${org.mapstruct.version}</version>
  <scope>provided</scope>
</dependency>

Remarque pour les versions de Lombok

Pour les versions 1.18.16 et supérieures de Lombok, vous aurez besoin de la dépendance lombok-mapstruct-binding pour garantir une bonne intégration. avec MapStruct.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn