aar打包、发布到maven、带第三方依赖的打包、带本地module依赖的打包

PS: aar 和 jar 包的区别是,arr支持将layout、照片等资源文件一起打包,而jar不可以。
在这里插入图片描述

背景简单介绍:

app依赖lib 1,lib1依赖 lib2,lib1 里面还有第三方的gihub依赖,lib2里面也什么都没有依赖,就是一个单纯的封装的工具module,现在的任务是:

1、lib2做成aar。(配合讲解普通的aar如何打包)

2、lib1做成aar。(配合讲解带第三方依赖的lib怎么打包成aar,带本地lib module的怎么打包成aar)

一、普通的aar打包

如果将lib2 打包成aar,那么就属于最基础的打包方式了。

但是这种打包也有好几种:

1、可以用gradlew 命令打包;

2、手动点击gradle task打包;

3、手动点击build 打包。

我这里只演示 3 、手动点击build 打包。

在这里插入图片描述

先选中你要打aar的 module,再点击Build,然后点击 Make Module “***”

就会生成一个aar,生成的aar在该module的 build/outputs/aar下

在这里插入图片描述

上可能会有人有疑问,为啥是debug.aar,这个是可以改的,如下图:

在这里插入图片描述

把这个debug改成release,那么build 出来的aar就是release的了。

你可以将你的aar提供给别人使用。

可能有人觉得这样答出来的aar需要拷贝来拷贝去,不怎么好,那么下面我介绍maven方式的时候刚好也解决了这个问题。

二、带有第三方依赖的aar打包

在这里插入图片描述

为了跟我最后要讲的第三方依赖和module并存的情况,我这里先暂时将module依赖注释掉。

1、首先声明,这种带依赖的有两种方式打aar:

(1)第一种:跟我上面介绍的一样,你直接打aar即可,但是别人用你的aar的时候,只要访问的类里面包含了第三方依赖的东西,就会提示NoClassFoundException哦,解决办法是你把你依赖的所有第三方依赖拷贝给他,他将这些依赖再在他的项目里面依赖一下就可以正常访问你的aar了。

(2)第二种:使用maven或github形式生成的aar。我这里暂时只介绍提交到maven。

2、分为在线和离线生成两种:

如果你有maven 地址或者是公司的maven地址,你可以直接传上去。当然最好肯定是现在本地测试完上传(上传上去的也可以删除)。

离线测试;

在线测试提交(也会生成本地aar);

离线和在线都会生成aar,并且离线和在线的区别其实就是配置的maven地址不一样。如下图:

在这里插入图片描述

上图是应用maven插件。

在这里插入图片描述

我红色框出来的上面是在线的地址和账号密码,下面框出来注释的是离线的地址,意思就是生成的aar会提交到本地仓库。

如何生成aar?

在这里插入图片描述

找到Gradle 任务里面去找到你刚刚在build.gradle 里面配置的uploadArchvies 任务,双击启动即可。

运行完毕之后,如果你选择的是离线的提交到了本地.m2库,自己可以去翻翻看,如果选择的是直接提交到了maven在线仓库,就需要去访问那个地址去看了。并且别人用的时候需要配置你放的那个maven库的地址、账号、密码,在project的 build.gradle 里面配置一下,配置完的效果如下:

在这里插入图片描述

本地仓库地址:我用的是mac,mac的地址一般在.m2目录下,这回目录是隐藏的,你可一直接通过“前往文件夹”或者是解除隐藏既可以看到这个文件夹了。

在这里插入图片描述

你一层一层点进去就能找到你提交到本地仓库的aar了。

使用的时候直接在project 的 build.gradle配置一下,新增可以访问本地maven库就可以了:

在这里插入图片描述

配置好可以访问本地maven库之外,记得将你的生成的aar依赖地址放到app的module 的build.gradle里面 implemention哦,比如:

在这里插入图片描述

这个地址是你在前面配置的groupId那张照片里面配置的提交到maven库的依赖地址。

三、带有本地module依赖的aar打包

重点来了,之所以写这篇blog,是为了记录这个。如果要打包的lib里面有本地module依赖,如何打包。

当然您可以直接把您的module给别人,别人添加也行,但是我要介绍的和记录的是提交到maven里面,这样用起来更方便。

如下图:

在这里插入图片描述

Lib1 不光有 api 第三方依赖,还有 project 依赖。

我这里采用的是github的一个工具fat-aar工具。首先需要将插件引入,然后应用:

在这里插入图片描述

classpath 'com.github.kezong:fat-aar:1.3.5'

在这里插入图片描述

apply plugin: 'com.android.library'
apply plugin: 'maven'
apply plugin: 'com.kezong.fat-aar'

在这里插入图片描述

在要打包(比如我介绍的lib 1)的 build.gradle 的android 节点里面加上上图的配置。

最后需要对第三方依赖、本地的module依赖进行改造:

在这里插入图片描述

这样就改造完了。

然后打包的方式跟我上面介绍的一样,还是去执行uploadArchives task就可以生成了。

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值