如何使Android Studio項目發佈到Jcenter中

Android倉庫

簡單的普及下關於android的依賴倉庫,有兩種分別是JcenterMaven Central其實不論是Jcenter仍是Maven Central都是Maven庫。android

Jcenter

Jcenter是由bintray.com維護,在Android Studio的項目根目錄的build.gradle中咱們會看到自動幫咱們實現的Jcenternginx

buildscript {
    repositories {
        jcenter()
    }
}

Maven Central

固然也能夠在build.gradle中定義Maven Centralgit

buildscript {
    repositories {
        mavenCentral()
    }
}

至於在Android Studio中爲何默認使用Jcenter緣由仍是有的,感興趣的能夠本身去查,我要說的一點就是,這裏你能夠認爲JcenterMaven Central的超集,這樣就能更好的理解爲何要使用Jcenter了。github

gradle獲取library

這裏要了解一下咱們看到的依賴所定義的方式,實際上是有格式的並非隨便亂寫的。其實你只要日常夠仔細就能發現他們的格式是同樣的。
GroupIdArtifactIdVersionId組成。例如com.jakewharton:butterknife:6.1.0'它的GroupIdcom.jakewhartonArtifactIdbutterknifeVersionId6.1.0。如今看這些依賴是否是更清晰了呢。當咱們添加了依賴以後gradle會先去Maven中查找是否有該library若是有就會使用上面定義的形式下載http://jcenter.bintray.com/GroupId/ArtifactId/VersionIdsql

http://jcenter.bintray.com/com/jakewharton/butterknife/6.1.0apache

http://www.codesocang.com/anzhuoyuanma/
經過該連接下載到本地再與咱們的項目結合。api

下面正式進行實現依賴的實現app

註冊

首先要在https://bintray.com 中註冊帳號,註冊都是很簡單的就不所說了。
而後回到主頁在你的Owned Repositories中看下你是否已經添加了mavenmaven

第一次註冊的應該沒有,因此咱們要先New Repository建立mavengradle

建立以後會自動跳轉到maven中,你會發現沒有package,咱們能夠Add New Package這種相信都會,我這裏要說的是另一種,咱們直接在Android Studio中進行配置而後上傳到Bintray

代碼中配置

分離成多個Module

爲了使別人能更好的使用,咱們通常在實現本身的依賴的時候會把實現的該依賴的源碼做爲一個Module,再把實例代碼做爲Application Module。因此咱們要事先處理好Module,下面是我弄好的示例

添加bintray插件

在分了Module以後,首先在項目的根目錄build.gradle
dependencies中添加bintray插件

classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2' classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3

添加bintray認證

找到local.properties文件在其中添加

bintray.user=xxxx
bintray.apikey=xxx

bintray.user是註冊的user,至於bintray.apikeyJFrog Bintray中的Your ProfileEdit頁面的API Key中能找到。

修改Module中的build.gradle

在其中添加以下示例代碼:

apply plugin: 'com.android.library' ext { bintrayRepo = 'maven' bintrayName = 'mypicker' publishedGroupId = 'com.idisfkj.picker' libraryName = 'MyPicker' artifact = 'mypicker' libraryDescription = 'A pickerView on Android' siteUrl = 'https://github.com/idisfkj/idisfkj.picker' gitUrl = 'https://github.com/idisfkj/idisfkj.picker.git' libraryVersion = '1.2.1' developerId = 'idisfkj' developerName = 'idisfkj' developerEmail = 'idisfkj@qq.com' licenseName = 'The Apache Software License, Version 2.0' licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt' allLicenses = ["Apache-2.0"] }

同時在最後添加兩個腳本

apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/installv1.gradle' apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/bintrayv1.gradle'

這是我這個依賴的示例。其中bintrayRepo是默認的使用mavenmypicker是創建的package namesiteUrl是你的項目地址,個人項目在github上,因此是github項目的地址形式。gitUrlVCS。其餘應該沒什麼問題,相應的改爲本身的信息。

這樣就構建好了依賴com.idisfkj.picker:mypicker:1.2.1

上傳到bintray

打開Android Studio的終端

編譯library文件

在終端輸入

./gradlew install

出現BUILD SUCCESSFUL就沒問題

上傳

在終端輸入

./gradlew bintrayUpload

同樣的出現BUILD SUCCESSFUL就沒問題
而後你進入JFrog Bintray進入maven你就會發現其中多了一個package,若是有的話那就表示完美成功。

同步到Jcenter

完成了上面的步驟並不表明別人能夠直接使用

dependencies { compile 'com.idisfkj.picker:mypicker:1.2.1' }

還要添加

repositories { maven { url 'https://dl.bintray.com/idisfkj/maven/' } }

因此咱們要同步到Jcenter中,怎麼同步呢?別急,只要在你剛剛生成的package中點擊Add to Jcenter便可。

進去以後直接發送就能夠,不須要填寫什麼。

最後就是等待了。幾個小時以後你會收到考覈經過的消息,再返回package就會發現Linked to發生了變化。

如今你也能夠經過http://jcenter.bintray.com/com/idisfkj/picker/mypicker/1.2.1 查看。

同時別人也能使用你的依賴,經過以下簡單的配置

dependencies { compile 'com.idisfkj.picker:mypicker:1.2.1' }

版本更新

對於版本更新,只要更改上面配置的版本號libraryVersion = '1.2.1'改爲你要更新的版本,其它不變。再從新上傳到bintray

總結

我這裏再來整理下上傳的思路。

  • 既然要上傳到Jcenter上,天然要去https://bintray.com 中註冊帳號

  • 根據本身的需求建立mavenRepository

  • 把項目分離成Module

  • 在項目根目錄的build.gradle中添加bintray插件

  • local.properties中添加bintray認證

  • 修改Module中的build.gradle中的配置

  • Android Studio終端使用./gradlew xxx上傳

  • 最後在JFrog Bintray中同步到Jcenter

好了,就到這裏了,但願有所幫助!

相關文章
相關標籤/搜索