mapstruct結合lombok使用的衝突問題

IMBennie發表於2024-06-29

記一下在mapstruct結合lombok使用的衝突問題:

  • 編譯時提示@Mapping配置的屬性找不到。
  • 在生成Mapper的impl實現類時不能生成正確的bean的getter/setter語句。

解決方法:
需要在maven-compiler-plugin的annotationProcessorPaths中同時配置lombok及mapstruct-processor。
並且lombok配置需要在前面。

<plugins>
    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <annotationProcessorPaths>
                <path>
                    <groupId>org.projectlombok</groupId>
                    <artifactId>lombok</artifactId>
                    <version>${lombok.version}</version>
                </path>
                <path>
                    <groupId>org.mapstruct</groupId>
                    <artifactId>mapstruct-processor</artifactId>
                    <version>${mapstruct.version}</version>
                </path>
            </annotationProcessorPaths>
        </configuration>
    </plugin>
</plugins>

相關文章