Skip to content

依赖库增量编译

Jugg 支持在修改构建文件或依赖声明后,读取 Gradle dependency diff,并在用户确认后把变化的 library 产物纳入增量编译/部署判断。本页只说明可增量处理的场景;两步确认、library diff 和回退原因见依赖库增量编译原理

可增量处理的依赖变化

场景当前支持情况用户可见结果
构建文件发生变化支持识别Jugg 会询问是否检查依赖变化
library 依赖新增或更新支持按 diff 处理新 library 产物进入本轮增量判断
library 依赖删除支持进入部署判断删除影响会进入后续编译/部署判断
用户选择不增量处理依赖支持回退本轮转为 Gradle 构建,重新建立基线

NOTE

依赖库增量编译不是重新执行完整 Gradle 依赖解析 pipeline。Jugg 会借助 Gradle 读取 diff;涉及插件、source set、variant 或 classpath 生成规则变化时,仍建议 Gradle 构建。

触发与结果

text
构建文件变化
  -> 询问是否检查依赖变化
  -> 用户确认后读取依赖 diff
  -> 可增量处理的 library 变化进入本轮
  -> 不适合增量时回退 Gradle

如果用户取消、diff 失败或本轮不适合增量,Jugg 会把构建文件变化视为需要 rebuild,后续走 Gradle 回退。

使用边界

  • 修改依赖版本但 ABI/API 变化较小,更适合尝试依赖库增量。
  • 修改 Gradle 插件、source set、variant、annotation processor 或 Kotlin compiler 插件配置时,更适合直接 Gradle。
  • 如果依赖变化后出现源码解析失败,Jugg 会尝试更新 compile context 并重试一次;仍失败时建议 Gradle 构建。

关联能力