Skip to content

Gradle 回退

Jugg 会优先尝试增量编译,但在本轮修改不适合旁路处理时,会回退到 Gradle。回退的目标是重新建立可信构建基线,让后续增量继续基于正确产物运行。

触发 Gradle 回退的情况

场景当前支持情况生效方式
用户强制 Gradle支持直接跳过增量检查
没有文件变化支持提示或自动回退由配置决定是否确认
文件过多或模块过多支持自动回退避免增量成本高于 Gradle
设备或部署状态不可用支持自动回退重新建立 install/deploy 状态
build target 切换支持自动回退App 与 androidTest 切换需要新 APK 基线
构建文件/依赖变化支持确认后回退或依赖增量用户确认决定是否继续增量

回退如何发生

text
开始 Jugg 编译
  -> 检查强制 Gradle、文件变化、设备状态、build target
  -> 检查构建文件和依赖变化
  -> 如果不适合增量,返回可回退结果
  -> 执行本地或远端 Gradle 构建
  -> 拉取 APK、classpath、mapping、资源等新基线

回退后,Jugg 会继续使用 Gradle 产物更新编译上下文、部署历史和 classpath。下一次小范围修改仍可继续走增量。

什么时候主动 Gradle

  • 刚切分支或拉取大量代码。
  • 升级 AGP、Kotlin、Gradle、R8 或重要构建插件。
  • 修改 source set、variant、Manifest placeholder 来源。
  • 修改注解处理器、KSP/KAPT、Compose compiler plugin 配置。
  • release 增量后出现运行时异常。

关联能力