天天看点

【我的Android进阶之旅】如何快速寻找Android第三方开源库在Jcenter上的最新版本问题描述解决方法

<a href="#%E9%97%AE%E9%A2%98%E6%8F%8F%E8%BF%B0" target="_blank">问题描述</a>

<a href="#%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95" target="_blank">解决方法</a>

<a href="#%E5%85%88%E4%BA%86%E8%A7%A3compile-comsquareupokhttpokhttp240%E7%9A%84%E6%84%8F%E4%B9%89" target="_blank">先了解compile comsquareupokhttpokhttp240的意义</a>

<a href="#%E4%BA%86%E8%A7%A3jcenter%E5%92%8Cmaven" target="_blank">了解Jcenter和Maven</a>

<a href="#jcenter" target="_blank">jcenter</a>

<a href="#maven-central" target="_blank">Maven Central</a>

<a href="#%E7%90%86%E8%A7%A3jcenter%E5%92%8Cmaven-central" target="_blank">理解jcenter和Maven Central</a>

<a href="#%E5%BF%AB%E9%80%9F%E6%90%9C%E7%B4%A2%E6%96%B9%E6%B3%951" target="_blank">快速搜索方法1</a>

<a href="#%E5%BF%AB%E9%80%9F%E6%90%9C%E7%B4%A2%E6%96%B9%E6%B3%952" target="_blank">快速搜索方法2</a>

<a href="#%E5%BF%AB%E9%80%9F%E6%90%9C%E7%B4%A2%E6%96%B9%E6%B3%953" target="_blank">快速搜索方法3</a>

<a href="#%E5%9B%A0%E6%AD%A4%E8%A6%81%E6%B3%A8%E6%84%8F%E7%9C%8B%E4%BD%A0%E6%98%AF%E6%83%B3%E8%A6%81%E9%82%A3%E4%B8%AA%E7%89%88%E6%9C%AC%E7%9A%84" target="_blank">因此要注意看你是想要那个版本的</a>

今天有个android开发者问了我下面的问题:

问个问题 比如我想找最新的okhhtp compile的最新那句话 compile ‘com.squareup.okhttp:okhttp:2.4.0’ 2.4.0明显不是最新的 应该怎么找?

如下图所示:

【我的Android进阶之旅】如何快速寻找Android第三方开源库在Jcenter上的最新版本问题描述解决方法

好吧,就这个问题写一篇博客来描述怎么找到最新的第三方开发包的版本。

首先我们要了解compile ‘com.squareup.okhttp:okhttp:2.4.0’这一行gradle代码的意义。

基本上我们可以从这一行代码可以了解到,引用一个library的代码需要3个部分,即:

GROUP_ID:ARTIFACT_ID:VERSION

在这句代码里面的

GROUP_ID 是com.squareup.okhttp,

ARTIFACT_ID 是okhttp,

VERSION 是2.4.0

按照我的理解,

GROUP_ID就像是我们写一个项目使用的公司包名一样,表示自己所在的团队或个人,

ARTIFACT_ID我认为就是这个类库的名称,用于区分同一个GROUP下不同的类库,

最后的VERSION顾名思义就是版本号。

Android Studio是从build.gradle里面定义的Maven 仓库服务器上下载library的。Apache Maven是Apache开发的一个工具,提供了用于贡献library的文件服务器。总的来说,只有两个标准的Android library文件服务器:jcenter 和 Maven Central。

jcenter是一个由 bintray.com维护的Maven仓库 。你可以在这里看到整个仓库的内容。

我们在项目的build.gradle 文件中如下定义仓库,就能使用jcenter了:

Maven Central 则是由sonatype.org维护的Maven仓库。你可以在这里看到整个仓库。

注:不管是jcenter还是Maven Central ,两者都是Maven仓库

我们在项目的build.gradle 文件中如下定义仓库,就能使用Maven Central了:

注意,虽然jcenter和Maven Central 都是标准的 android library仓库,但是它们维护在完全不同的服务器上,由不同的人提供内容,两者之间毫无关系。在jcenter上有的可能 Maven Central 上没有,反之亦然。

为何有两个标准的仓库?

事实上两个仓库都具有相同的使命:提供Java或者Android library服务。上传到哪个(或者都上传)取决于开发者。

起初,Android Studio 选择Maven Central作为默认仓库。如果你使用老版本的Android Studio创建一个新项目,mavenCentral()会自动的定义在build.gradle中。

但是Maven Central的最大问题是对开发者不够友好。上传library异常困难。上传上去的开发者都是某种程度的极客。同时还因为诸如安全方面的其他原因,Android Studio团队决定把默认的仓库替换成jcenter。正如你看到的,一旦使用最新版本的Android Studio创建一个项目,jcenter()自动被定义,而不是mavenCentral()。

有许多将Maven Central替换成jcenter的理由,下面是几个主要的原因。

1. jcenter通过CDN发送library,开发者可以享受到更快的下载体验。

2. jcenter是全世界最大的Java仓库,因此在Maven Central 上有的,在jcenter上也极有可能有。换句话说jcenter是Maven Central的超集。

3. 上传library到仓库很简单,不需要像在 Maven Central上做很多复杂的事情

4. 友好的用户界面

基于上面的原因以及我自己的经验,可以说替换到jcenter是明智之举。

【我的Android进阶之旅】如何快速寻找Android第三方开源库在Jcenter上的最新版本问题描述解决方法

如刚才那位开发者的提问一样,既然他是想要com.squareup.okhttp:okhttp的最新版本,那么我就去搜索com.squareup.okhttp:okhttp。如下图所示:

【我的Android进阶之旅】如何快速寻找Android第三方开源库在Jcenter上的最新版本问题描述解决方法

可以看到搜索第一个排名就是com.squareup.okhttp:okhttp的maven的相关信息,点击进入:

【我的Android进阶之旅】如何快速寻找Android第三方开源库在Jcenter上的最新版本问题描述解决方法

可以看到com.squareup.okhttp:okhttp的最新版本为2.7.5

点击 2.7.5 的链接,进入如下如所示的界面:

【我的Android进阶之旅】如何快速寻找Android第三方开源库在Jcenter上的最新版本问题描述解决方法

上面写了com.squareup.okhttp:okhttp的gradle的相关配置信息为:

maven的相关信息为:

【我的Android进阶之旅】如何快速寻找Android第三方开源库在Jcenter上的最新版本问题描述解决方法

因此可以知道com.squareup.okhttp:okhttp的最新版本为2.7.5,如果我们要在项目中使用com.squareup.okhttp:okhttp的话,只要在gradle文件中配置如下的命令即可。

【我的Android进阶之旅】如何快速寻找Android第三方开源库在Jcenter上的最新版本问题描述解决方法

然后搜索com.squareup.okhttp:okhttp,如下图所示:

【我的Android进阶之旅】如何快速寻找Android第三方开源库在Jcenter上的最新版本问题描述解决方法

搜索结果如下所示:

【我的Android进阶之旅】如何快速寻找Android第三方开源库在Jcenter上的最新版本问题描述解决方法

如图所示,我们可以知道com.squareup.okhttp:okhttp的最新版本为2.7.5,点击链接com.squareup.okhttp进入如下界面:

【我的Android进阶之旅】如何快速寻找Android第三方开源库在Jcenter上的最新版本问题描述解决方法

如上图所示,如果我们要在项目中使用com.squareup.okhttp:okhttp的话,只要在gradle文件中配置如下的命令即可。

直接去github上搜索 okhttp

【我的Android进阶之旅】如何快速寻找Android第三方开源库在Jcenter上的最新版本问题描述解决方法
【我的Android进阶之旅】如何快速寻找Android第三方开源库在Jcenter上的最新版本问题描述解决方法

下面就有如何引入okhttp的方式,如下图所示:

【我的Android进阶之旅】如何快速寻找Android第三方开源库在Jcenter上的最新版本问题描述解决方法

如上图所示,表面okhttp最新版本是3.4.1,不过这是okhttp3.x版本的,之前那哥们要的是2.x版本

我们又进入maven网站去搜索 com.squareup.okhttp3

【我的Android进阶之旅】如何快速寻找Android第三方开源库在Jcenter上的最新版本问题描述解决方法

搜 com.squareup.okhttp

【我的Android进阶之旅】如何快速寻找Android第三方开源库在Jcenter上的最新版本问题描述解决方法
【我的Android进阶之旅】如何快速寻找Android第三方开源库在Jcenter上的最新版本问题描述解决方法
作者:欧阳鹏 欢迎转载,与人分享是进步的源泉!
【我的Android进阶之旅】如何快速寻找Android第三方开源库在Jcenter上的最新版本问题描述解决方法

继续阅读