文档 / IDE
运行与调试
使用 Maven、Gradle、Ant、npm 或 Cargo 构建,应用服务器,JDWP、CDP 和 PL/SQL 调试器,热替换和 JVM 诊断。
Yuli 使用项目自身的工具来编译、运行、测试和调试。停止构建、日志或测试时,会终止整个进程树。
构建工具
| 工具 | 项目 |
|---|---|
| Maven | 带 pom.xml 的 Java 项目 |
| Gradle | 带 build.gradle 的 Java 和 Kotlin 项目 |
| Ant | 带 build.xml 的 Java 项目 |
| npm | JavaScript 和 TypeScript(根据 lockfile 识别包管理器) |
| Cargo | Rust |
Yuli 还能直接理解未迁移的 Eclipse 项目。
工具链
Yuli 会检测 JDK、Maven 和 Gradle,提供下载缺失的组件,并显示它们的状态。在 项目 → 构建、运行和调试… 中配置:环境变量、VM 选项、Spring 配置文件、SDK、Maven、Gradle 和保存方式。
Maven / Gradle / Ant 面板
位于底部面板(Alt+7):筛选器、以标签形式显示的配置文件、一条展示生命周期各阶段的横条,以及按组分类的其他任务卡片。
运行
| 操作 | 快捷键 |
|---|---|
| 运行上一次的配置 | Shift+F10 |
| 调试上一次的配置 | Shift+F9 |
| 停止运行 | Ctrl+F2 |
| 构建项目 | Ctrl+F9 |
| 运行所有测试 | Ctrl+Shift+F10 |
| 运行测试并统计覆盖率 | Ctrl+Shift+F11 |
运行配置
类型:构建、运行、测试、清理、覆盖率、打包、自定义命令和 package.json 脚本。配置带有历史记录。
控制台
在 运行 面板中,项目的每一行 stack trace、每个 JSP 错误以及每个 Archivo.java:42 都可跳转到对应的文件和行。可以按级别、按包或 logger 筛选,或按 我的代码(只显示来自项目的内容)筛选。
应用服务器
在 项目 → 项目结构… → 服务器 中:
| 服务器 | 说明 |
|---|---|
| Tomcat | 更新类时重新加载上下文。 |
| Jetty | — |
| JBoss / WildFly | — |
| WebLogic | 开发模式下的域。 |
- **Exploded 部署:**JSP、HTML、CSS、JS 和
.properties在保存时即同步到服务器,无需重新部署。更新 会复制重新编译后的类。 - 每个服务器都使用项目内的独立配置和独立端口运行。
- 可以以运行或调试方式启动;调试器会自动连接。
- 如果应用在
jakarta服务器上使用javax(或反之),会给出提醒。 - 服务器的 API(Servlet、JSP)会加入编辑器的 classpath。
调试
| 语言 | 调试器 |
|---|---|
| Java 与 JVM | 原生 JDWP 客户端 |
| Node.js | Chrome DevTools Protocol(CDP) |
| Oracle PL/SQL | Oracle 的 DBMS_DEBUG |
功能
- 变量树和对象检查,并在代码上内联显示值。
- 易读的值:对象显示为
Owner{id=3, firstName="George", …},日期显示为2026-10-15,集合显示其大小。 - 条件断点、计数断点、logpoint 和异常断点。
- 表达式求值和热修改变量值。
- 调试测试。
单步执行
| 操作 | 快捷键 |
|---|---|
| 继续 | F9 |
| 下一行(step over) | F8 |
| 步入,仅限你的代码(step into) | F7 |
| 强制步入 | Alt+Shift+F7 |
| 跳出方法 | Shift+F8 |
| 重新加载已修改的类(热替换) | Ctrl+Alt+F10 |
热替换
在调试会话期间,使用项目的工具重新编译并重新定义已更改的类,无需重启。
PL/SQL
要在 Oracle 中调试,用户需要 DEBUG CONNECT SESSION 权限,且对象必须使用 COMPILE DEBUG 编译。
JVM 诊断
JVM 面板(位于底部面板的“更多”中)可连接到任何本地 Java 进程。
| 工具 | 作用 |
|---|---|
| 线程转储 | 按状态分组,并突出显示阻塞和死锁。 |
| 内存直方图 | 按类统计内存。重复执行时会显示哪些部分在增长(内存泄漏)。 |
| 堆转储 | 保存 .hprof 文件,供 Eclipse MAT 或 VisualVM 使用。 |
| 分析 CPU 与内存 | 使用 Flight Recorder:开销最大的方法、调用树、内存分配和 GC。如果 JVM 不支持,则通过线程采样进行分析。 |
标签页:CPU、内存、分配 和 线程。筛选器 仅项目代码 只保留你的代码,项目中的栈帧可跳转到准确的行。
测试与覆盖率
- 测试资源管理器运行测试,并在 测试 面板中报告结果。
- 覆盖率显示在编辑器边栏中:已覆盖、未覆盖和部分覆盖。
- 在 Gradle 中,无需修改构建配置即可生成覆盖率,多模块项目同样适用。
与智能体协作
说一句“编译、测试并启动”,智能体就会使用 yuli_verify:完整构建、运行所有测试,并以默认配置文件启动一次应用。如果应用因为某个环境变量或配置文件而无法启动,智能体可以自行排查,只在需要机密值时才向你询问。