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


Android倉庫

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

Jcenter

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

buildscript {
    repositories {
        jcenter()
    }
}

Maven Central

當然也可以在build.gradle中定義Maven Central

buildscript {
    repositories {
        mavenCentral()
    }
}

至於在Android Studio中為什么默認使用Jcenter原因還是有的,感興趣的可以自己去查,我要說的一點就是,這里你可以認為JcenterMaven Central的超集,這樣就能更好的理解為什么要使用Jcenter了。

gradle獲取library

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

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

http://www.codesocang.com/anzhuoyuanma/
通過該鏈接下載到本地再與我們的項目結合。

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

注冊

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

第一次注冊的應該沒有,所以我們要先New Repository創建maven

創建之后會自動跳轉到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

好了,就到這里了,希望有所幫助!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM