Skip to content

运行上下文与无变化结果

CLI 和 MCP 从 Android Studio 当前工程中复用 Jugg 运行上下文。命令本身不携带完整 Run Configuration,因此多 App、多 variant 或远端/本地混合工程中,先确认配置选择和“无变化”语义很重要。

配置选择决定实际构建目标

CLI/MCP 按以下顺序选择 Jugg 配置:

  1. Android Studio 当前选中的 Jugg 配置。
  2. 与最近一次完整构建的命令和 BuildTarget 匹配的配置。
  3. 与最近一次完整构建命令匹配的配置。
  4. 第一个可用配置,并在日志中说明回退选择。

选择结果决定 compile command、APK pattern、BuildTarget、远端编译参数和部署目标。多配置工程建议在调用前显式选中目标 Jugg 配置。

`executionType` 表示 Gradle 回退位置

`status` 和编译类工具会返回 `executionType`:

含义
`local`需要 Gradle 时在本机执行
`remote`需要 Gradle 时使用 Run Configuration 的远端环境

它描述回退执行环境,不表示当前调用一定已经走了 Gradle。是否发生回退还要结合最终 compile result 和日志判断。

No pending file changes 是成功状态

`compile` 返回成功但没有 compiled files 时,表示当前没有文件需要编译,本轮没有生成新的编译产物。命令仍然成功,并且不会执行部署。

`deploy` 返回成功但没有 compiled files 时,表示当前 Jugg 检测到的修改已经部署,没有新的待处理文件。它不等同于“命令没有执行”,也不代表重新编译了一遍所有文件。

命令在首次调用内完成或经过异步轮询完成时,最终的 no-pending message 保持一致。

`deploy` 结果会尽量附带当前 IDE 会话内最近一次“包含文件变化且部署成功”的信息:

  • 绝对时间和相对时间。
  • 项目相对文件路径。
  • 最多展示 20 个文件,更多文件只显示剩余数量。

该记录只保存在当前 IDE 会话。IDE 重启后,命令仍会报告没有待部署变化,但最近一次文件明细可能不可用。

dry deploy 与 Gradle fallback

IDE Run 在没有文件变化时可以根据设置:

  • 回退完整 Gradle 构建。
  • 取消本轮运行。
  • 执行一次 dry deploy,用现有部署状态继续启动或验证设备端状态。

dry deploy 不应被报告成 Gradle fallback。它没有新增编译产物,主要用于首次运行、切换工程、Debug 或用户选择跳过完整构建的场景。

CLI/MCP 返回结果时,应同时看:

  • `isCompileSuccess`
  • `isDeploySuccess`
  • message / detail
  • compiled files

编译成功、无新文件和部署成功可以同时成立。

多次部署的判断建议

```text jugg status -> 确认 selected device、executionType、pending files jugg deploy -> 查看 compile/deploy 终态 -> 无 pending files 时读取最近一次变化部署摘要 ```

如果你确信文件已修改但仍返回 no pending changes,先保存文件并执行带刷新变化的 status,再检查工程目录和当前选中的 Jugg 配置。

相关页面