JPS 增量注释处理被禁用。部分重新编译的编译结果可能不准确

Gio*_*uri 20 intellij-idea

因为IntelliJ IDEA 2020.3.2(我使用社区版),我开始得到:

Parsing java... [applicationname]
java: JPS incremental annotation processing is disabled. Compilation results on partial recompilation may be inaccurate.
Use build process "jps.track.ap.dependencies" VM flag to enable/disable incremental annotation processing environment.
Writing classes
Run Code Online (Sandbox Code Playgroud)

警告,在 IntelliJ IDEA 中运行应用程序时。

这实际上发生在构建阶段,当您“第一次”运行应用程序时(更准确地说,target是在构建时(或您配置为构建结果目录的任何内容))。

这个消息是什么意思?

小智 24

我使用的是旧版本的 Lombok,更改为新版本修复了 IntelliJ 中的问题

旧版本:

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>
Run Code Online (Sandbox Code Playgroud)

新版本:

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.20</version>
    <scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)


And*_*rey 13

由于 IDEA 的构建是增量的,它使用包装器接口来收集一些数据,这些数据将有助于增量分析正确编译受更改影响的文件。

-Djps.track.ap.dependencies=false如果添加该选项: File > Settings/Preferences > Build, Execution, Deployment > Compiler。然后字段Build process VM options在调用 Filer 方法时禁用注释处理器指定的依赖项集合。

在 IntelliJ 的更高版本中,设置现在位于: File > Settings > Build, Execution, Deployment > Compiler,然后字段Shared build process VM options

请参阅此问题的更多详细信息:IDEA-252069

  • 添加该标志并不能在 IntelliJ 2020.3.2 Ultimate 上为我解决这个问题 (7认同)
  • 谢谢您的回答;然而,对我来说,这读起来就像是胡言乱语。也许您知道背景情况……但并非所有人都知道。您能详细解释一下“IDEA 的构建是增量的”是什么意思吗?什么是“包装接口”?用途是什么?IDEA 正在收集什么**一些**数据(这似乎是新事物......)? (3认同)
  • @Giorgi Tsiklauri,在最新的 IntelliJ 版本中,设置现在位于 _File | 下 设置| 构建、执行、部署 | 编译器| 共享构建过程VM options_。这个对我有用。对于您关于这意味着什么的问题,只有当您获得像 Lombok 这样的注释处理器并且与我所理解的 IntelliJ 处理增量重新编译的方式相关联时,才会发生此问题。为什么默认情况下没有设置此选项?就是那个问题… (3认同)
  • 使用 IntelliJ 2021.1 版本,但添加该标志后 IntelliJ 应该重新加载,并且在 Maven 项目的情况下还应该运行 `mvn celan &amp; install`。 (2认同)

小智 9

就我而言,我尝试使用旧版本的 lombok 插件(版本 1.16.16),但它是旧的插件版本,我更新到 1.18.20(观察:今天是 2021 年 7 月)并且运行良好。


小智 5

就我而言,升级 Lombok 软件包的版本不起作用。

\n
    <dependency>\n        <groupId>org.projectlombok</groupId>\n        <artifactId>lombok</artifactId>\n        <version>1.18.26</version>\n    </dependency>\n
Run Code Online (Sandbox Code Playgroud)\n

它仍然显示相同的错误。

\n
Parsing java... [applicationname]\njava: JPS incremental annotation processing is disabled. Compilation results on partial recompilation may be inaccurate.\nUse build process "jps.track.ap.dependencies" VM flag to enable/disable incremental annotation processing environment.\nWriting classes\n
Run Code Online (Sandbox Code Playgroud)\n

idea首选项面板中的编译器添加了-Djps.track.ap.dependency=false参数。

\n

在此输入图像描述

\n

它又不起作用了。

\n

我怀疑是缓存问题什么的,我使用了文件下无效的缓存,重启了几次,但是\xe2\x80\x99不起作用。

\n

最后,构建运行程序将委托 ide 构建/运行操作打开到 Maven,仅此而已。但是开启后,我在本地运行项目debug,然后再关闭时会很慢。Lombok没有报错,于是就解决了。

\n

在此输入图像描述

\n