mapstruct 1.4.2 和 lombok 1.18.16 及以上版本结合使用
生活随笔
收集整理的這篇文章主要介紹了
mapstruct 1.4.2 和 lombok 1.18.16 及以上版本结合使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在使用 mapstruct 時發現其不生效,檢查生成的轉換器實現類,發現全部沒有調用 setter 方法進行對象數據轉移。
后來考慮到類 setter 方法是使用 lombok 插件生成的,所以應該控制這兩者工作的順序。在網上找了一通方法都不行,最后通過官方文檔發現 lombok 1.18.16 之后必須使用 lombok-mapstruct-binding 插件。
相關配置如下:
Maven 配置
<properties><org.mapstruct.version>1.4.2.Final</org.mapstruct.version><org.projectlombok.version>1.18.16</org.projectlombok.version><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target> </properties><dependencies><dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct</artifactId><version>${org.mapstruct.version}</version></dependency><!-- lombok dependency should not end up on classpath --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${org.projectlombok.version}</version><scope>provided</scope></dependency> </dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target><annotationProcessorPaths><path><groupId>org.mapstruct</groupId><artifactId>mapstruct-processor</artifactId><version>${org.mapstruct.version}</version></path><path><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${org.projectlombok.version}</version></path><!-- additional annotation processor required as of Lombok 1.18.16 --><path><groupId>org.projectlombok</groupId><artifactId>lombok-mapstruct-binding</artifactId><version>0.1.0</version></path></annotationProcessorPaths></configuration></plugin></plugins> </build>Gradle 配置(3.4 and later)
dependencies {implementation "org.mapstruct:mapstruct:${mapstructVersion}"implementation "org.projectlombok:lombok:1.18.16"annotationProcessor "org.projectlombok:lombok-mapstruct-binding:0.1.0"annotationProcessor "org.mapstruct:mapstruct-processor:${mapstructVersion}"annotationProcessor "org.projectlombok:lombok:1.18.16" }官方樣例 Github
參考:官方文檔
總結
以上是生活随笔為你收集整理的mapstruct 1.4.2 和 lombok 1.18.16 及以上版本结合使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 记录 McAfee WebAdvisor
- 下一篇: 汇编程序.c到a.out的生命历程