You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 00:07:43