在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:fat-aar-android开源软件地址:https://gitee.com/wan7451/fat-aar-android开源软件介绍:fat-aar-android该插件提供了将library以及它依赖的module一起打包成一个完整aar的解决方案,支持gradle plugin 3.0.1及以上。(目前测试的版本范围是gradle plugin 3.0.1 - 4.0.0,gradle 4.6 - 6.1.1) 如何使用第一步: Apply plugin添加以下代码到你工程根目录下的 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:xxx' classpath 'com.kezong:fat-aar:1.2.16' }} 添加以下代码到你的主library的 apply plugin: 'com.kezong.fat-aar' 第二步: Embed dependencies
代码所示: 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.11.0' // don't want to embed in // 不建议使用implementation,因为该依赖可能与application的依赖版本不一致,使用implementation可能会导致R类找不到的问题 compileOnly 'com.android.support:appcompat-v7:27.1.1'} 多级依赖本地依赖如果你想将本地所有相关的依赖项全部包含在最终产物中,你需要在你主library中对所有依赖都加上 比如,mainLib依赖lib1,lib1依赖lib2,如果你想将所有依赖都打入最终产物,你必须在mainLib的 远程依赖如果你想将所有远程依赖在pom中声明的依赖项同时打入在最终产物里的话,你需要在 // the default value is false// invalid for local aar dependencyconfigurations.embed.transitive = true 如果你将transitive的值改成了true,并且想忽略pom文件中的某一个依赖项,你可以添加 embed('com.facebook.fresco:fresco:1.11.0') { exclude(group:'com.facebook.soloader', module:'soloader')} 更多使用方式可参考 example. 关于 AAR 文件AAR是Android提供的一种官方文件形式;该文件本身是一个Zip文件,并且包含Android里所有的元素;可以参考 aar文件详解. 支持功能列表:
Gradle版本支持
Gradle Plugin和所需求的Gradle版本官方文档 更新日志
常见问题
致谢 |
请发表评论