1. 程式人生 > >Android如何快速尋找第三方開源庫在Jcenter上的最新版本

Android如何快速尋找第三方開源庫在Jcenter上的最新版本

首先看一下問題:
問個問題
比如我想找最新的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

基本上我們可以從這一行程式碼可以瞭解到,引用一個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是明智之舉。

最簡潔,最快速的搜尋方法:
http://jcenter.bintray.com/
舉例說明:
如果你想知道 compile ‘com.squareup.okhttp:okhttp:2.4.0’
則搜尋:
http://jcenter.bintray.com/com/squareup/okhttp/okhttp/
就是在http://jcenter.bintray.com/後面新增compile ‘com.squareup.okhttp:okhttp’
並且把 . 和 : 改成 / 去搜索,就可以搜尋到所有的版本號。
如圖:
在這裡插入圖片描述
顯然最新版本是2.7.5
所以

compile ‘com.squareup.okhttp:okhttp:2.7.5’

就可以了
講完了

參考文章
http://www.wanandroid.com/blog/show/2053
http://www.wanandroid.com/navi
https://blog.csdn.net/ouyang_peng/article/details/52628359