如何将多个Android库模块合并为单个Maven依赖包发布?
该需求完全可以实现,你只需要新增一个无业务代码的聚合模块,利用Maven的依赖传递特性即可达成效果,操作步骤如下:
步骤1:新建聚合模块
在项目中新增一个空的Android Library模块,命名为android-sdk即可,不需要编写任何业务逻辑代码。
步骤2:配置聚合模块依赖
打开android-sdk模块的build.gradle文件,添加三个现有库模块的依赖声明,注意要使用api关键字保证依赖可以向上传递:
api project(':core') api project(':feature1') api project(':feature2')
步骤3:配置聚合模块的发布参数
在android-sdk模块根目录下新建gradle.properties文件,参考现有子模块的发布配置修改即可,仅需要调整和模块标识相关的参数:
GROUP=com.example.sdk POM_ARTIFACT_ID=android-sdk VERSION_NAME=1.0.2 POM_NAME=android-sdk POM_PACKAGING=aar POM_DESCRIPTION=All-in-one Android SDK package POM_INCEPTION_YEAR=2021 POM_URL=GITHUB_URL POM_SCM_URL= GITHUB_URL POM_SCM_CONNECTION= GITHUB_URL.git POM_SCM_DEV_CONNECTION=scm:git@GITHUB_URL POM_LICENCE_NAME=The Apache Software License, Version 2.0 POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt POM_LICENCE_DIST=repo
步骤4:执行发布
直接使用你原有发布命令即可完成所有模块的发布:
./gradlew publish --no-daemon --no-parallel
发布完成后用户引入implementation 'com.example.sdk:android-sdk:1.0.2'时,Maven会自动拉取对应版本的core、feature1、feature2三个子模块,和用户单独引入三条依赖的效果完全一致。
注意事项
- 后续子模块版本升级时,同步修改聚合模块的
VERSION_NAME即可保持全量包版本和子模块版本统一 - 原有单独引入子模块的使用方式不受任何影响,用户可以按需选择全量引入或者按需引入单个功能模块
内容的提问来源于stack exchange,提问作者Moiz Hassan Khan
相关产品推荐
相关产品推荐

