2 回答

TA貢獻1786條經驗 獲得超13個贊
Maven只使用Mapstruct處理器,那么你需要在pom.xml中添加Maven插件,配置Mapstruct與Lombok處理器一起使用。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<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>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-mapstruct-binding</artifactId>
<version>0.1.0</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
您不需要包含 Final 修飾符。如前所述,使用 @Data 而不是 @Value。
在我的測試中,這足以讓 Mapstruct 1.4.1.Final 與 Lombok 和 JDK 11 配合使用。

TA貢獻1966條經驗 獲得超4個贊
好吧,結果變成了龍目島+私人決賽。
Mapper 特別希望 Lombok@Data
被聲明@Value
(而不是@Builder
被 MapStruct 使用),因此,需要final
從需要更新的字段中刪除。
奇怪的是,這是通過“google,錯誤并重試”完成的(加上out
每次嘗試時都從項目中手動清除目錄,因為 MapStruct 忽略了這些更改),而 MapStruct 從未給出警告(沒有忽略警告或錯誤的標志)被宣布)。
添加回答
舉報