IntelliJ Idea mapstruct java:Map处理器中的内部错误:java.lang.NullPointerException

slmsl1lt  于 2023-05-22  发布在  IntelliJ IDEA
关注(0)|答案(6)|浏览(268)

在升级到Idea的2020.3版本后,我得到了Map处理器的NullPointerException。如果有人有线索...谢谢大家!

epggiuax

epggiuax1#

解决方案是将MapStruct更新到1.4.1.Final或更高版本,see this issue以获取更多详细信息。
您也可以在文件中添加-Djps.track.ap.dependencies=false|设置(macOS上的首选项)|构建、执行、部署|编译器|构建流程VM选项作为解决方法。

xpszyzbs

xpszyzbs2#

如果你不能更新MapStruct(我的例子),details here
你必须找到放置-Djps.track.ap.dependencies=false设置的确切位置(我很难弄清楚在哪里)。
所以,正如他们所说,一张照片胜过千言万语:
x1c 0d1x首选项-->构建、执行、部署-->编译器

ozxc1zmp

ozxc1zmp3#

这里有几个intellij bug。如果我将maven版本1.3.0.Final更改为1.4.1.Final,intellij不想更新版本。

解决方案

1.将maven版本升级到1.4.1.Final
1.从外部库(项目结构)中手动删除mapstruct 1.3.1.Final|图书馆)

  1. mvn清洁包
    1.单击reload all maven projects
    它的工作原理没有-Djps.track.ap.dependencies=false
    如果你有swagger exclude mapstruct first:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger2.version}</version>
<exclusions>
    <exclusion>
        <groupId>org.mapstruct</groupId>
        <artifactId>mapstruct</artifactId>
    </exclusion>
</exclusions>
czq61nw1

czq61nw14#

关于freedev's的答案。对于Windows用户来说,以下是要去的地方:
1.单击右侧的设置齿轮图标。

1.转到设置(ctrl+A+S是到达这里的一个很好的快捷方式)。
1.在左侧菜单

中的Build,Execution,Deployment下找到Compiler
1.在用户本地构建进程VM选项中添加-Djps.track.ap.dependencies=false

jc3wubiy

jc3wubiy5#

在我的情况下,我做了这些改变,它对我很好。

然后我删除了缓存并重建了整个项目,也许这不是必要的,但这对我来说很有效。

k5hmc34c

k5hmc34c6#

在我的情况下,我的build.gradle配置错误。我在两个独立的项目(命令和自定义Map器)中使用了一些Mapstruct SPI AccessorNamingStrategy,我在构建gradle的annotationProcessor中包含了两次。我的解决方案是删除其中一个注解,它起作用了。

相关问题