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

  • 问题描述
  • 解决方法
    • 先了解compile comsquareupokhttpokhttp240的意义
    • 了解Jcenter和Maven
      • jcenter
      • Maven Central
      • 理解jcenter和Maven Central
    • 快速搜索方法1
    • 快速搜索方法2
    • 快速搜索方法3
    • 因此要注意看你是想要那个版本的

问题描述

今天有个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

时间: 2024-12-31 19:32:57

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

我的Android进阶之旅------&amp;gt;如何解决Android 5.0中出现的警告: Service Intent must be explicit:

我的Android进阶之旅-->如何解决Android 5.0中出现的警告: java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=com.xtc.kuwo.watch.MUSIC_PLAY_SERVICE (has extras) } 1.错误描述 今天在Android4.4 的小米4手机上运行我的程序的时候没有报错,而在Android 5.1的华为P7上运行我的程序的时候报了以下的错

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

前言 由于项目越来越多,有很多公共的代码都可以抽取出一个开发库出来传到公司搭建好的Maven私服,以供大家使用. 之前搭建的Maven仓库只有Release和Snapshot两个仓库,最近由于开发库有时候不稳定有bug,不便于测试.因此领导说要搭建三个版本的仓库,分别为Release版本.Beta版本.Dev版本,Snapshot版本废弃掉,下面来分别介绍下这三个版本仓库的意义. Dev版本:是用于开发库维护人员能够很快的新增代码并上传到Maven仓库,这样其他开发人员就能够很快的获取该Dev版

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

Android EditText控件是经常使用的控件,但是有时候我们并不需要它的一些默认的属性,比如说下划线,因为有时候这样的默认下划线看起来特别怪异,和其他控件在一起搭配的时候不协调,因此有时候就需要去掉默认的下划线. 下面先看看默认的效果. 代码如下 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.

我的Android进阶之旅------&amp;gt;如何获取Android控件的宽和高

本文转载于:http://blog.csdn.net/johnny901114/article/details/7839512 我们都知道在onCreate()里面获取控件的高度是0,这是为什么呢?我们来看一下示例: 首先我们自己写一个控件,这个控件非常简单: [java] view plaincopy public class MyImageView extends ImageView {          public MyImageView(Context context, Attribu

我的Android进阶之旅------&amp;gt;关于使用Android Studio替换App的launcher图标之后仍然显示默认的ic_launcher图标的解决方法

前言 最近做了一个App,之前开发该App的时候一直以来都是默认的launcher图标启动的, 今天美工换了一个App的launcher 图标,因此在Android Studio中将默认的lancher图标替换成美工的图标,运行到真机后,发现一直没有替换成功. 替换 下面是替换lancher图标的代码,将如下默认的代码 <application android:name=".app.QQNewsApp" android:allowBackup="true" a

我的Android进阶之旅------&amp;gt;如何将Android源码导入Eclipse中来查看(非常实用)

Android源码下载完成的目录结构如如所示: step1:将.classpath文件拷贝到源代码的根目录 Android源码支持多种IDE,如果是针对APP层做开发的话,建议大家使用Eclipse开发环境.在源码路径(~/development/ide/eclipse)下,Android提供了.classpath配置文件(备注:该文件为隐藏文件). cp development/ide/eclipse/.classpath ./ chmod u+w .classpath # Make the

我的Android进阶之旅------&amp;gt;ListView中android:cacheColorHint,android:listSelector属性作用 .

            ( 本文转载于:http://blog.csdn.net/stonecao/article/details/6216449)        自定义listview的时候,当你不使用android:cacheColorHint="#00000000"会出现下面选中一个空间黑色底色的情况,破坏整体美观度:                当你不使用android:listSelector属性,默认会显示选中的item为橙黄底色,有时候我们需要去掉这种效果:      

我的Android进阶之旅------&amp;gt;Android权限参考大全

访问登记属性 android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限 获取错略位置 android.permission.ACCESS_COARSE_LOCATION,通过WiFi或移动基站的方式获取用户错略的经纬度信息,定位精度大概误差在30~1500米 获取精确位置 android.permission.ACCESS_FINE_LOCATION,通过GPS芯片接收卫星的定位信息,定位精度达10米以内 访问定

【我的Android进阶之旅】推荐一款视频转换GIF图片格式的转换工具(Video to GIF)

一.背景 最近想把一些Android Demo的运行效果图获取下来,但是一直使用真机进行调试,在电脑上不好截取一段gif动画.而之前使用模拟器的时候可以使用 GifCam 工具进行屏幕动画截取.GifCam 软件使用的截取的效果图如下所示: 关于GifCam的介绍可以看我之前的一篇博客,博客地址为: 我的Android进阶之旅-->介绍一款集录制与剪辑为一体的屏幕GIF 动画制作工具 GifCam (http://blog.csdn.net/ouyang_peng/article/details