声明:博文未经授权一律不允转载
问题
- 怎么获取开源项目的aar包。
- support library的aar包又怎么获取呢。
背景
首先我们来看看这个问题是如何产生的,因为公司需要配置Jenkins离线打包,具体的操作我也写了一篇博文来描述踩坑过程,《Ubuntu下结合Github搭建Jenkins自动打Android包》,显然,点进去之后你会发现被我坑了,因为我还时间没写完。
公司需要配置Jenkins离线打包,服务器为了避免编译的时候下载很多的未知的资源,以及缩短编译时间,因此如果安卓的项目中如果在build.gradle中使用compile、api或者implementation引用开源项目的话,比如:
compile 'com.android.support:appcompat-v7:26.1.0'
如果服务器的sdk中没有下载有这个26版本的库,那么就很可能会导致离线编译不通过,因为专门用于编译工作的服务器有时候是没有必要连接外网的,没有外网就意味着不能够下载相关的引用的资源或者代码,因此我们通常会需要引用的开源项目的aar包,来支持离线编译。
然而通过compile、api或者implementation引用开源项目,我们在本地很可能会找不到aar,哪怕在build里面也找不到。
这个时候开头说的两个需求就来了。我们当然可以通过下载开源项目的源代码然后手动打aar包[谷歌一下]的方式来得到,当然我们也可以通过官方的下载渠道得到。接下来就介绍一下如何获取官方的aar包。
获取官方的aar包
获取开源项目的aar包
四个步骤,简单到怀疑人生
- 打开链接
https://search.maven.org/#search - 搜索开源项目名字
- a. 比如搜索okhttp
- a. 比如搜索okhttp
下载
- a.这里需要说的一点就是,由于有些开源项目比如说squareup的okhttp,只是一个类库,也就是全部都是class文件,因此是不需要打包成aar包的,只需要一个jar包即可。
- b.点击对应开源项目的“jar”或者“aar”即可下载到对应版本的,如下图
c.一般这个的版本都是最新发布的版本,如果不是想要的版本的时候,可以点击下图中的“all”,就能够得到所有的已发布的版本,这时候点击对应aar或者jar下载需要的包即可。
获取support library的aar包
- 比如需要找到appcompat-v7的25.3.1版本,去SDK下相应的文件夹下就能够找到了
- [SDK_DIR]\extras\android\m2repository\com\android\support\appcompat-v7\25.3.1
- 如果不知道有什么版本怎么办,别怕,谷歌出品必属精品,肯定有迹可循的嘛
- 打开这个网址即可查看最近的和最新的发布的支持包版本了:Recent Support Library Revisions
引用
//引用aar包配置
dependencies {
//compile(name: 'xxx', ext: 'aar')
compile(name:'mylib-release', ext:'aar')
}
repositories{
flatDir{
dirs 'libs'
}
}
拓展
如果想要更加深入拓展研究透彻,推荐可以从这些个方向去深入:
- 如何打aar包。
- build.gradle中compile、api或者implementation回来依赖库在本地是以怎么样的形式存在的。
- 是一堆的资源文件和*.class文件还是什么?
- 存在什么目录中?build文件夹中?
- 难道不是compile引用一个库不是下载其aar包到本地么?