网上看到两个合并aar的gradle插件,记录一下
1、android-fat-aar 地址:https://github.com/adwiv/android-fat-aar
该插件已停止维护,不支持新的gradle版本,此处不做介绍,感兴趣的朋友可以到github学习
2、fat-aar-android 地址:https://github.com/kezong/fat-aar-android
该插件提供了将library以及它依赖的library一起打包成一个完整aar的解决方案,支持AGP 3.0及以上。(目前测试的版本范围是AGP 3.0 - 4.2.0,Gradle 4.9 - 6.8)
使用:
1. 添加以下代码到你工程根目录下的build.gradle文件中
```java
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.github.kezong:fat-aar:1.3.6'
}
}
```
2. 添加以下代码到你的主library的build.gradle中:
```gradle
apply plugin: 'com.kezong.fat-aar'
```
3. embed你所需要的工程, 用法类似implementation
代码示例: gradle dependencies { implementation fileTree(dir: 'libs', include: '*.jar') // java dependency embed project(path: ':lib-java', configuration: 'default') // aar dependency embed project(path: ':lib-aar', configuration: 'default') // aar dependency embed project(path: ':lib-aar2', configuration: 'default') // local full aar dependency, just build in flavor1 flavor1Embed project(path: ':lib-aar-local', configuration: 'default') // local full aar dependency, just build in debug debugEmbed(name: 'lib-aar-local2', ext: 'aar') // remote jar dependency embed 'com.google.guava:guava:20.0' // remote aar dependency embed 'com.facebook.fresco:fresco:1.12.0' // don't want to embed in implementation('androidx.appcompat:appcompat:1.2.0') }
4. 执行assemble命令
在你的工程目录下执行assemble指令,其中lib-main为你主library的工程名称,你可以根据不同的flavor以及不同的buildType来决定执行具体的assemble指令 ```gradle # assemble all ./gradlew :lib-main:assemble
# assemble debug
./gradlew :lib-main:assembleDebug
# assemble flavor
./gradlew :lib-main:assembleFlavor1Debug
```
最终合并产物会覆盖原有aar,同时路径会打印在log信息中.
详细用法请移步作者github了解
|