Skip to content

自定义编译器

Jugg 支持通过自定义编译器 SPI 扩展内置增量编译链。自定义编译器可以在 asset、resource、source、minify、dex 等阶段前后插入逻辑,处理项目特有的生成、转换或校验需求。本页说明接入能力和常见插入点,加载与阶段边界见自定义编译器原理

支持的接入方式

场景当前支持情况用户可见结果
本地 jar 自定义编译器支持本地扩展逻辑可进入 Jugg 编译链
远端 jar 自定义编译器支持远端扩展下载校验后参与编译
阶段前置处理支持可在内置阶段前消费或改写输入
阶段后置处理支持可在内置阶段后处理产物
编译失败收口支持扩展异常会让当前任务失败并给出可见提示

NOTE

自定义编译器运行在 Jugg 编译流程内,适合补充增量链路,不适合替代完整 Gradle task graph。

触发与结果

text
自定义编译器配置可用
  -> 加载并校验扩展 jar
  -> 按配置插入编译阶段
  -> 参与本轮增量编译
  -> 成功产物继续交给后续阶段

选择插入点时,应按用户目标选择阶段,而不是按 jar 加载时机判断。

常见插入点

目标推荐区间
最早处理文件atFirst
资源前后处理beforeRes / afterRes
Java/Kotlin 前后处理beforeSource / afterSource
混淆前后处理beforeMinify / afterMinify
dex 前后处理beforeDex / afterDex

关联能力