我们正在尝试从Gradle 4.5升级到5.0。升级后,compileJava失败了,因为Mapstruct无法解析@Mapping注释中使用的值(显然getter不可用)。在Gradle 4.5中这是正常工作的。
代码如下:
我们的 build.gradle 文件如下:
我们遇到的错误是:
这在Gradle 4.5中一直运行良好。
代码如下:
@Mapper(componentModel = "spring")
public interface CAndACodeGenConverter extends BaseConverter<CGen, AGen> {
@Mapping(target = "owner", source = "owner.name")
@Mapping(target = "useCA", source = "defaultCA")
AGen convertToDto(CGen entity);
}
我们的 build.gradle 文件如下:
mapstructVersion = "1.4.1.Final"
lombokVersion = "1.18.12"
lombokMapstructBindingVersion = "0.2.0"
compileOnly('org.projectlombok:lombok:1.18.12')
compile("org.mapstruct:mapstruct:${mapstructVersion}")
implementation "org.mapstruct:mapstruct:${mapstructVersion}", "org.projectlombok:lombok:${lombokVersion}"
annotationProcessor "org.mapstruct:mapstruct-processor:${mapstructVersion}", "org.projectlombok:lombok-mapstruct-binding:${lombokMapstructBindingVersion}"
我们遇到的错误是:
error: No property named "owner.name" exists in source parameter(s). Did you mean "null"?
这在Gradle 4.5中一直运行良好。