spring maven 项目中的映射处理器作为插件

Mappping Processor as plugin in spring maven project

我开发了一个使用 lombok 和 mapstruct 库的项目。 我有以下 Maven 结构:

        <dependency>
            <groupId>org.modelmapper</groupId>
            <artifactId>modelmapper</artifactId>
            <version>2.3.6</version>
        </dependency>
        <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct</artifactId>
            <version>1.3.1.Final</version>
        </dependency>
...

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.5.1</version>
        <configuration>
            <annotationProcessorPaths>
                <path>
                    <groupId>org.mapstruct</groupId>
                    <artifactId>mapstruct-processor</artifactId>
                    <version>1.3.1.Final</version>
                </path>
                <path>
                    <groupId>org.projectlombok</groupId>
                    <artifactId>lombok</artifactId>
                    <version>1.18.8</version>
                </path>
            </annotationProcessorPaths>
        </configuration>
    </plugin>

到目前为止,我在 运行 安装应用程序时没有遇到任何问题。今天编译的时候报了如下错误

java: Internal error in the mapping processor: java.lang.NullPointerException   at org.mapstruct.ap.internal.processor.DefaultVersionInformation.createManifestUrl(DefaultVersionInformation.java:180)  

这是在我的项目中使用 MapStruct 的示例。

@Mapper(componentModel = "spring", uses = {}, unmappedTargetPolicy = ReportingPolicy.WARN)
public interface AccountMapper {
    @Mapping(source = "registerDto.firstName", target = "firstName")
    Account from(RegisterDto registerDto, PasswordDto passwordDto);
}

在那种情况下可能是什么问题? 我只在 IntelliJ 中遇到过这个问题。在 cmd 中我可以 运行 和编译项目。

我发现了一篇有趣的文章,它解决了 Intellij 中的编译问题。 https://youtrack.jetbrains.com/issue/IDEA-220430