You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IDEA 2022.1.3旗舰版运行Groovy单测报JPS增量注解处理禁用错误

IntelliJ IDEA 2022.1.3 运行Groovy测试触发全量编译问题解决

问题表现

运行Groovy测试用例时控制台输出如下提示:

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.

即使运行单个测试用例也会触发全项目编译,耗时极长,直接在共享构建进程VM选项、运行配置中添加-Djps.track.ap.dependencies=false参数无法解决问题。

根因说明

2022.1.3版本的IDEA中,jps.track.ap.dependencies参数设为false时会直接关闭增量注解处理的依赖追踪能力,强制每次编译走全量扫描,网上流传的加false参数的方案完全是方向错误。Groovy项目因为同时存在Java、Groovy双源码目录,注解处理器配置不匹配时,IDEA会自动降级为全量编译模式。

分步解决操作

所有操作完成后重启IDEA生效:

  • 开启注解处理器配置:打开Settings > Build, Execution, Deployment > Compiler > Annotation Processors,勾选Enable annotation processing,选择Obtain processors from project classpath选项,不要手动指定处理器jar路径。
  • 正确配置构建进程参数:打开Settings > Build, Execution, Deployment > Compiler,在Shared build process VM options输入框中填入-Djps.track.ap.dependencies=true,不要填false。
  • 修复Groovy编译器配置:打开Settings > Build, Execution, Deployment > Compiler > Groovy Compiler,勾选Invoke dynamic compilation,将Groovy compiler heap size调整为2048MB以上,避免编译时内存不足触发全量降级。
  • 清理本地缓存:点击File > Invalidate Caches...,勾选Clear file system cache and Local History、Clear downloaded shared indexes,点击Invalidate and Restart等待缓存重建完成。
  • 切换构建运行器:如果项目使用Maven/Gradle管理,运行测试时选择构建工具原生的运行选项(即运行项后缀带(Gradle)/(Maven)的选项),不要使用IDEA默认的JPS构建器,构建工具原生的测试执行逻辑只会编译当前测试关联的改动文件,不会触发全量扫描。

大型项目单Groovy测试运行优化

  • 修改测试运行配置的前置操作:打开对应测试的Run Configuration,找到Before launch列表,把默认的Build步骤替换为Build, no error check,如果对源码变动非常熟悉,可以直接移除全量Build步骤,手动编译改动的关联类即可。
  • 优化测试启动参数:在测试运行的VM options中添加-XX:TieredStopAtLevel=1,关闭JIT多层编译,缩短测试启动的JVM预热时间。
  • 区分单元测试与集成测试:不需要启动Spring等重型容器的纯逻辑测试,直接写无上下文依赖的Groovy单测,不要走集成测试的容器启动流程,单测运行速度可提升10倍以上。

内容的提问来源于stack exchange,提问作者Amit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 20:24:10