Android 中将多个子模块合并成一个 aar

4,180 阅读1分钟

1. 项目的结构


image.png

目标:将模块A打包成 aar,提供给其他工程师使用。

模块之间的关系:模块A引用模块B,模块B引用模块C。

2. 使用 fat-aar-android 三方库进行实现

  1. 添加以下代码到工程根目录的build.gradle文件中:
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.github.kezong:fat-aar:1.3.8'
    }
}
  1. 添加以下代码到主模块的build.gradle中(Module A):
apply plugin: 'com.kezong.fat-aar'
  1. 添加以下代码到主模块的build.gradle中(Module A):
embed project(path: ':ModuleB', configuration: 'default')
embed project(path: ':ModuleC', configuration: 'default')

Module B 引用 Module C,则需要在 Module B 的 build.gradle中进行引用

eg: implementation project(path: ':Module B')

  1. 执行 assemble 命令
# assemble all 
./gradlew :ModuleA:assemble

到这里的话就顺利完成了,遇到其它问题的话,我暂时不会。

参考

Android修炼系列(27),fat-aar 下的 arr 合并的坑

一文详解 implementation api embed