[Github] 发一个自己写的将 android 依赖库打包进 aar 的插件,请大家多指教哈~

2019-07-31 11:44:22 +08:00
 wang23412

大家如果使用过 android 打包的 aar 文件,就会知道 android 打包生成的 aar 文件里面不包含依赖的库,app 模块使用 aar 文件时还得重新导入 aar 文件依赖的库,如果 aar 文件还依赖了一个本地 aar,那么 app 模块使用的时候还得把这个本地 aar 文件拷贝到 libs 目录。

如果不想将 aar 发布到 maven 库的话,这个特性或者缺陷在公司合作中会显得很不舒服,这里有一些关于这个问题的讨论: 讨论 1 讨论 2

曾经也有人发布过解决方案, 可惜作者不再维护,在 android gradle 3.0 以上基本不能用.

于是我开发了此插件,能将依赖库直接打包进 aar 文件,app 模块在使用 aar 文件时无需再重新引入依赖库: https://github.com/cpdroid/fat-aar

以上,请大家多多拍砖,多多指教~


以下是用法

在根目录的 build.gradle 文件里面添加如下语句:

buildscript {
  repositories {
    jcenter()
  }
  dependencies {
    classpath 'com.cpdroid:fat-aar:1.0.0'
  }
}

library 工程的 build.gradle 里面添加如下语句:

apply plugin: 'com.android.library'
apply plugin: "com.cpdroid.fat_aar"

确保 'com.cpdroid.fat-aar' 在'com.android.library'后面

用关键字 "embedded" 替代 "implementation" 或者 "compile" 就可以把依赖的库打包进你的 aar 文件:

embedded fileTree(dir: 'libs', include: ['*.aar'])
embedded project(':moduleA')
embedded 'com.gongwen:marqueelibrary:1.1.3'

运行 gradle 任务, 一般来说是 "assembleRelease", 把生成的 aar 文件复制进 app 模块的 libs 目录

示例

10451 次点击
所在节点    Android
2 条回复
wang23412
2019-07-31 11:47:26 +08:00
本来想把用法折叠起来,奈何 github 上的折叠方式在这里不起作用,请问 V2EX 怎么折叠代码
a1024a
2019-10-25 02:48:45 +08:00
大神,nb.....

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/587815

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX