梦幻女团
53.79M · 2026-02-05
大家好,我是 Guide。IntelliJ IDEA 2026.1 EAP 2 来了!这次更新变化不小——Gradle Tooling API 升级到 9.3.0、Java 调试器新增异步堆栈跟踪开销检测、Claude Code 支持 Shift+Enter 换行、JUnit 6 的 CancellationToken 支持、DevContainers 容器化开发增强。
和大家一样,现有 Cursor、Claude Code、 Codex 等 AI 编程 IDE 之后,我打开 IDEA 的频率真的少多了。不过,我还是会在电脑装上,平时 CR 或者调试等场景还是更熟悉一些。
当下去下结论,说这款陪伴了绝大部分 Java 开发者这么多年的 IDE 会走向灭亡,真还不太好说,这个时代一切发展都快了!说不定 IDEA 后面在 AI 方向取得了进步呢?
开始介绍本次带来的主要更新之前,先简单介绍一下 EAP。
EAP(Early Access Program) 是 JetBrains 的早期访问计划,提供免费的全功能预览版本。你可以将其视为“官方公测版”——功能完整但处于打磨期,适合想提前尝鲜或免费使用正版 IDE 的开发者。
为什么要关注 EAP?
注意:由于是不稳定版本,生产环境建议使用正式版;个人项目或技术研究建议尝试 EAP。
下面带大家详细看看这次更新。
写异步代码最头疼的是什么?调试。
当你用 CompletableFuture、Reactor、RxJava 这些库写异步逻辑时,堆栈跟踪会变成一串 lambda$xxx$xxx,看不出业务逻辑在哪。
什么是异步堆栈跟踪?
传统堆栈是“物理”的,记录的是当前线程的调用。而异步代码中,任务会在不同线程间传递,导致调用链断裂。异步堆栈跟踪尝试还原“逻辑调用链”,让你看到任务是从哪里被创建和触发的。
// 传统代码的堆栈
Thread.run()
└─ service.process()
└─ repository.save()
// 异步代码的堆栈(传统方式)
ForkJoinPool.run()
└─ lambda$asyncProcess$abc123
└─ CompletableFuture.apply()
└─ ?? 业务逻辑在哪?
异步堆栈跟踪尝试还原"逻辑调用链",而不是"物理线程栈",让开发者能看到业务代码的执行路径。
EAP 2 引入了异步堆栈跟踪开销检测。
为什么要检测开销?
维护逻辑调用关系需要额外的内存和 CPU 资源。在某些极端场景下,这种坚控本身可能成为性能瓶颈。新特性会主动监测调试器的运行开销,当发现其消耗资源过多时会及时提示。这能有效防止开发者因为“调试工具太重”而对应用本身的性能产生误判。
JUnit 6.0.0 已经发布,IDEA 2026.1 EAP 2 对其支持进行了优化。
IDEA-382199:JUnit 6 支持 CancellationToken。
JUnit 6 有哪些新特性?
JUnit 6 是一次重大升级,其核心变化包括:
suspend 方法。CancellationToken 是什么?
它让测试可以被"主动取消"。
// 你启动了 1000 个测试
// 跑到第 10 个发现关键 bug,想立即停止
// 以前只能手动 kill 进程
// 现在可以用 CancellationToken 取消剩余测试
对 CI/CD 场景尤其有用——快速反馈、节省资源。
修复了 JUnit 6 @FieldSource 的静态分析误报。
@FieldSource("testData.txt")
static Stream<String> testData;
// 以前:IDE 报错 "Field source type must be convertible to a Stream"
// 现在:正确识别类型,不再误报
如果你在用 DevContainers(容器化开发环境),这次更新有几个重要改进。
什么是 DevContainers?
DevContainers(开发容器) 是用容器封装完整开发环境的技术。你把项目需要的所有工具、依赖、配置都打包进 Docker 容器,团队成员用同一个镜像开发——"在我机器上能跑"的问题直接消失。
核心好处:
docker-compose up 就能干活为了更好地兼容 Dev Container Specification,EAP 2 新增了三个关键配置项:
| 选项 | 作用 |
|---|---|
remoteUser | 指定容器内运行命令的用户(如避免使用 root 带来的权限问题) |
remoteEnv | 灵活设置容器内的环境变量 |
userEnvProbe | 优化探测用户环境配置(如 .zshrc)的方式 |
这些改进让 IDEA 在处理复杂的容器权限和环境差异时更加游刃有余。
修复了 macOS 上 Docker 插件连接失败的问题。该问题由 Docker Desktop for macOS 更改默认 Socket 路径引起,新版本已完成路径自动适配。
这次 EAP 2 在 Gradle 集成上下了大功夫,核心是Gradle Tooling API 升级到 9.3.0。
什么是 Gradle Tooling API?
它是 Gradle 提供的编程接口,让 IDE 可以"深入"构建过程——不是简单调用命令行,而是直接查询项目结构、依赖关系、任务信息,并用类型安全的方式返回结果。
简单对比:
gradle tasks,然后解析文本输出getTasks(),直接拿到任务对象列表Tooling API 的优势:
升级到 9.3.0 带来的好处:
新增最佳实践检测功能。Gradle 官方有一套构建最佳实践(比如避免使用过时语法、合理配置依赖等),IDEA 现在会主动检测你的 build.gradle/build.gradle.kts 是否符合这些实践。
// 不推荐
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web:3.2.0'
}
// 推荐:使用版本目录
dependencies {
implementation libs.spring.boot.starter.web
}
EAP 2 修复了本地依赖补全的问题。以前在 dependencies {} 块里补全本地项目依赖时,遇到横杠(-)符号会失效,现在已经修复。
另外,TOML 元素的 Find Usages 窗口标题也改了(IDEA-382192),更清晰。
HTTP Client 支持 wait-for(x) 函数(休眠/等待)。
## 测试接口延迟
GET https://api.example.com/ping
## 等待 3 秒后再次请求
wait-for(3)
GET https://api.example.com/ping
这对测试"延迟触发"、"重试逻辑"等场景有用。
Terminal 中 Claude Code 支持 Shift+Enter 换行。
以前在 Terminal 里进入 Claude Code 模式后,按 Enter 是发送消息,无法换行。现在 Shift+Enter 可以插入新行。
语言级别自动匹配最高支持的 JDK。
以前手动设置语言级别很烦——项目用 JDK 21,但语言级别还是 Java 17,新语法报错。现在 IDEA 会自动识别项目 JDK,把语言级别设到最高支持版本。
修复了打开带通配符泛型的 Java 类导致 CPU 飙升的问题。
// 这种代码以前一打开 IDEA 就开始狂吃 CPU
List<? extends Map<String, ? extends Collection<?>>> wildcardHell;
改进的命名参数补全排序。
// 以前:命名参数补全顺序混乱
fun processUser(id: Long, name: String, age: Int, email: String)
processUser(id = 1, ??? 提示顺序很乱)
// 现在:按使用频率、上下文相关性排序
processUser(id = 1, name = "张三", age = 25, email = "...")
软弃用 kotlin.enumValues 函数。
// 以前
val values = enumValues<Color>()
// 现在 IDE 建议用更现代的方式
val values = Color.entries
enumValues 是 Kotlin 1.9 之前的遗留 API,新代码应该用 entries 属性。
EAP 2 修复了大量 Bug,以下是按模块分类的主要修复:
| 模块 | 主要修复 |
|---|---|
| Gradle | 本地依赖补全横杠失效、版本目录重命名、WSL 磁盘扫描 |
| Java | 通配泛型 CPU 飙升、包注解 PSI 丢失、optimize imports 忽略注释 |
| 调试器 | Split Debugger 值更新问题、异步堆栈跟踪开销检测 |
| 测试 | JUnit 参数未使用误报、Cucumber 斜杠转义 |
| Kotlin | K2 移除未用变量、智能补全排序、枚举值软弃用 |
| DevContainers | WSL/Docker 路径问题、远程用户/环境变量支持 |
| UI | 菜单闪烁、Islands 主题渐变不流畅、字体样式重置 |
| Version Control | Git 高亮残留、Worktree 打开失败 |
IntelliJ IDEA 2026.1 EAP 2 的关键升级:
CancellationToken、@FieldSource 修复emoteUser/remoteEnv/userEnvProbe 选项wait-for 函数建议:
⭐️推荐: