如何在Jitpack分发Clean架构开源项目的互依赖Android模块
多模块Android项目通过Jitpack分发的实现方案
核心结论:无需拆分仓库
不需要为每个模块单独创建仓库,单个仓库即可实现所有子模块的独立分发,Jitpack支持识别项目内的多个子模块并分别生成可引用的依赖包。
具体配置步骤
1. 子模块的Gradle基础配置
- 给每个需要对外分发的子模块(Core、core_ui、auth、settings等)的
build.gradle.kts(或.gradle)添加maven-publish插件:plugins { id("com.android.library") id("maven-publish") // 保留kotlin-android等原有插件 } - 在模块内配置发布构件信息(以Kotlin DSL为例),注意每个模块的
artifactId要唯一:afterEvaluate { publishing { publications { create<MavenPublication>("release") { from(components["release"]) groupId = "com.your-github-username" // 替换为你的GitHub用户名/组织名 artifactId = "core" // 模块专属标识,比如core、core-ui、auth等 version = "1.0.0" // 建议与Git标签版本保持一致 } } } }
2. 模块间依赖的处理
- 本地开发时,模块间的依赖保持原有写法即可,比如auth依赖Core和core_ui:
dependencies { implementation(project(":Core")) implementation(project(":core_ui")) } - Jitpack构建时会自动解析这些内部依赖,生成的每个模块包会包含正确的依赖声明,其他开发者引入时无需额外处理内部依赖链。
3. 发布到Jitpack的操作流程
- 在GitHub仓库打一个Git标签(比如
v1.0.0),标签版本建议和模块配置的version一致; - 打开Jitpack,输入你的仓库地址,选择对应的标签触发构建;
- 构建完成后,每个子模块会生成独立的依赖地址,格式示例:
implementation 'com.github.YourUsername:YourRepo:core:1.0.0' implementation 'com.github.YourUsername:YourRepo:core-ui:1.0.0' implementation 'com.github.YourUsername:YourRepo:auth:1.0.0'
关键注意事项
buildSrc是本地构建脚本的一部分,不会被分发,Jitpack构建时会直接使用项目内的buildSrc配置,无需额外处理;- 不需要对外分发的模块(比如app模块),只要不添加
maven-publish插件,Jitpack就会自动忽略; - 若构建失败,优先查看Jitpack的构建日志,重点排查模块间是否存在循环依赖、发布配置是否完整。
内容的提问来源于stack exchange,提问作者Konark Shivam
相关产品推荐
相关产品推荐

