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

Ant*_*nio 36 intellij-idea mapstruct

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

Cra*_*der 86

解决方法是将 MapStruct 更新至 1.4.1.Final 或更高版本,详情请参阅此 issue

您也可以-Djps.track.ap.dependencies=false在 File |添加 设置(macOS 上的首选项)| 构建、执行、部署 | 编译器 | 构建进程 VM 选项作为解决方法。

  • 将 Mapstruct 升级到 1.4.1.Final 后,我遇到了 1.3 中没有遇到的另一个问题 - “找不到用 @Named#value 注释的方法”。有人遇到过这个问题吗? (5认同)
  • 谢谢,添加 ```-Djps.track.ap.dependency=false``` 真的对我很有帮助! (5认同)
  • IDE 不应该是强制更新项目库的驱动程序。 (2认同)

fre*_*dev 23

如果您无法更新 MapStruct(我的情况),请在此处详细说明

您必须找到放置-Djps.track.ap.dependencies=false设置的确切位置(我很难弄清楚在哪里)。

所以,正如他们所说,一张图片胜过千言万语 在哪里放 ps.track.ap.dependencies=false

  • 完美的答案@freedev (5认同)

小智 14

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

解决方案

  1. 升级maven版本到1.4.1.Final
  2. 从外部库中手动删除 mapstruct 1.3.1.Final(项目结构 | 库)
  3. mvn 清洁包
  4. 单击重新加载所有 maven 项目

它在没有 -Djps.track.ap.dependencies=false 的情况下工作

如果你有 swagger 首先排除 mapstruct:

<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger2.version}</version>
<exclusions>
    <exclusion>
        <groupId>org.mapstruct</groupId>
        <artifactId>mapstruct</artifactId>
    </exclusion>
</exclusions>
Run Code Online (Sandbox Code Playgroud)


fir*_*l.1 7

扩展freedev 的答案。对于 Windows 用户,可以去以下地方:

  1. 单击右侧的设置齿轮图标。 在此输入图像描述
  2. 转到设置(ctrl+A+S 是到达此处的一个很好的快捷方式)。
  3. 在左侧菜单的“Build”、“Execution”、“Deployment”下找到“Compiler” 在此输入图像描述
  4. 添加-Djps.track.ap.dependencies=false用户本地构建过程VM选项