问题描述

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

问个问题

比如我想找最新的okhhtp compile的最新那句话 compile ‘com.squareup.okhttp:okhttp:2.4.0’

2.4.0明显不是最新的

应该怎么找?

如下图所示:

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

解决方法

先了解compile ‘com.squareup.okhttp:okhttp:2.4.0’的意义

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

compile 'com.squareup.okhttp:okhttp:2.4.0

基本上我们可以从这一行代码可以了解到,引用一个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顾名思义就是版本号。

了解Jcenter和Maven

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

jcenter

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

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

allprojects {
repositories {
jcenter()
}
}

Maven Central

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

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

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

allprojects {
repositories {
mavenCentral()
}
}

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

理解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是明智之举。

快速搜索方法1:



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



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



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

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



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

// https://mvnrepository.com/artifact/com.squareup.okhttp/okhttp
compile group: 'com.squareup.okhttp', name: 'okhttp', version: '2.7.5'

maven的相关信息为:

<!-- https://mvnrepository.com/artifact/com.squareup.okhttp/okhttp -->
<dependency>
<groupId>com.squareup.okhttp</groupId>
<artifactId>okhttp</artifactId>
<version>2.7.5</version>
</dependency>

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

compile 'com.squareup.okhttp:okhttp:2.7.5'

快速搜索方法2:

当然我们也可以直接进入 https://bintray.com/ 网站搜索com.squareup.okhttp:okhttp,如下图所示

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



搜索结果如下所示:



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

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

compile 'com.squareup.okhttp:okhttp:2.7.5'

快速搜索方法3:

直接去github上搜索 okhttp



点击连接 square/okhttp 进入:https://github.com/square/okhttp



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



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

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

搜 com.squareup.okhttp



因此要注意看你是想要那个版本的。

作者:欧阳鹏 欢迎转载,与人分享是进步的源泉!

转载请保留原文地址:http://blog.csdn.net/ouyang_peng/article/details/52490193

【我的Android进阶之旅】如何快速寻找Android第三方开源库在Jcenter上的最新版本的更多相关文章

  1. 我的Android进阶之旅------&gt;怎样解决Android 5.0中出现的警告: Service Intent must be explicit:

    我的Android进阶之旅-->怎样解决Android 5.0中出现的警告: java.lang.IllegalArgumentException: Service Intent must be ...

  2. Android Studio 简介及导入 jar 包和第三方开源库方[转]

    原文:http://blog.sina.com.cn/s/blog_693301190102v6au.html Android Studio 简介 几天前的晚上突然又想使用 Android Studi ...

  3. 【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服

    前言 由于项目越来越多,有很多公共的代码都可以抽取出一个开发库出来传到公司搭建好的Maven私服,以供大家使用. 之前搭建的Maven仓库只有Release和Snapshot两个仓库,最近由于开发库有 ...

  4. 我的Android进阶之旅------>【强力推荐】Android开源图表库XCL-Charts版本发布及展示页

    因为要做图表相关的应用,后来百度发现了一个很好的Android开源图表库(XCL-Charts is a free charting library for Android platform.) 下面 ...

  5. 【我的Android进阶之旅】如何隐藏Android中EditText控件的默认下划线

    Android EditText控件是经常使用的控件,但是有时候我们并不需要它的一些默认的属性,比如说下划线,因为有时候这样的默认下划线看起来特别怪异,和其他控件在一起搭配的时候不协调,因此有时候就需 ...

  6. 开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发

    [原][开源框架]Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位... 时间 2015-01-05 10:08:18 我是程序猿,我为自己代言 原文  http: ...

  7. 【开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位网友补充完善

    链接地址:http://www.tuicool.com/articles/jyA3MrU 时间 2015-01-05 10:08:18  我是程序猿,我为自己代言 原文  http://blog.cs ...

  8. Android 第三方开源库收集整理(转)

    原文地址:http://blog.csdn.net/caoyouxing/article/details/42418591 Android开源库 自己一直很喜欢Android开发,就如博客签名一样,  ...

  9. Android之史上最全最简单最有用的第三方开源库收集整理

    Android开源库 自己一直很喜欢Android开发,就如博客签名一样, 我是程序猿,我为自己代言 . 在摸索过程中,GitHub上搜集了很多很棒的Android第三方库,推荐给在苦苦寻找的开发者, ...

随机推荐

  1. Swift中UIView类方法(animateWithDuration)的使用

    需求:利用Swift语言实现OC语言中UIView类方法 [UIView animateWithDuration:0.5 animations:^{ bgView.alpha= 1; }]; 在Swi ...

  2. iptables 使用

    原文链接 本文介绍25个常用的iptables用法.如果你对iptables还不甚了解,可以参考上一篇iptables详细教程:基础.架构.清空规则.追加规则.应用实例,看完这篇文章,你就能明白ipt ...

  3. python学习之多行字符串

    多行字符串的写法 ("..." "..." "...") 例子 >>> err = ("a" ... ...

  4. ImageTag小案例

    其实不使用ImageIO,就是用一般的BufferedOutputStream+byte[] buffer也可以 关键在于通过response设置页面的MIME Type,自行Google~~~ 源代 ...

  5. python学习笔记1--python简介

    Python翻译中文是蟒蛇.发明人guido喜欢蟒蛇马戏团,故起名python. python发展简史: --CNRI时期.CNRI资助Python发展的重要单位,python1.5版之前的成果大部分 ...

  6. 【转帖】关于sql server 2008 的mdf收缩问题

    原帖地址:http://social.msdn.microsoft.com/forums/windowsazure/pt-br/388f92e1-9a1e-497d-bde1-6664561fd44e ...

  7. git版本管理之git-ssh 配置和使用

    1.设置用户名和邮箱 $ git config --global user.name "gsx-gh" $ git config --global user.email " ...

  8. Linux进程状态转换图

    Linux进程状态 Linux内核中的进程状态 ◆运行状态(TASK_RUNNING) 指正在被CPU运行或者就绪的状态.这样的进程被成为runnning进程.运行态的进程可以分为3种情况:内核运行态 ...

  9. Xcode 调试方法总结

    前言:编写代码过程中出现错误.异常是不可避免的.通常我们都需要进行大量的调试去寻找.解决问题.这时,熟练掌握调试技巧将很大程度上的提高工作效率.接下来就说说开发过程中Xcode的调试方法. 1. En ...

  10. cocos2dx-是男人就坚持20s 练手项目

    前言 前段时间心血来潮看了下app游戏方面的东西 ,对比了下各种技术和市场招聘情况,赶脚cocos2dx在2D游戏方向还算是大有所为,遂找了几个基础教程看看了解了解.并附上一个简单demo作为成果 准 ...