Android 快速發布開源項目到jcenter

大家在很多時候都希望讓自己的開源項目可以更方便的讓用戶去使用,那么對于Android平臺,一個很好的方式就是上傳到jcenter,然后使用時通過添加 compile 引用即可。

對于上傳到jcenter,也不算技術類的文章,而且已經有很多較好的文章可以參考,寫之前我也大致百度了一下。

目前很多文章都是以 gradle-bintray-plugin 這個插件做上傳,多數文章的介紹都是針對普通的開源項目的(即不包含編譯時注解相關)。那么對于用到編譯時注解,因為涉及到多個 module ,上傳可能會比較麻煩。

本文準備采用 bintray-release 這個插件,個人感覺比 gradle-bintray-plugin 要方便很多。

對于使用 gradle-bintray-plugin 的,我百度了下,可以參考這篇 http://www.cnblogs.com/qianxudetianxia/p/4322331.html

So,本文的主要內容是:

  1. 使用 bintray-release 發布一般項目到jcenter
  2. 使用 bintray-release 發布編譯時注解項目到jcenter

一、普通項目上傳到jcenter

ok,首先你應該有一個待上傳的項目。

那么我們這里模擬一個簡單的項目。

可以看到我們的basetools是個Android library,主要用來存放一些工具,我們現在要將其上傳到jcenter。

那么,對于你,應該已經有了這樣一個Android library,處于待上傳的狀態。

(1)注冊bintray.com賬號

為什么要注冊這個賬號呢,因為 jcenter() 屬于bintray旗下的一個倉庫。

我們的上傳流程其實就是,從你的Androd Studio,到你的bintray 倉庫,最后同步到jcenter倉庫。

  1. 進入 https://bintray.com/ ,注冊賬號。
  2. 注冊完成后,需要郵箱激活;也可以選擇第三方登錄。

注冊完成后,登錄,這兩步屬于非職業玩家都能搞定的。

登錄后:

登陸后,你可以點擊 Your Profile -> Edit 然后就能看到上圖的界面。

點擊API Key,就可以看到你一段key字符串,把這個copy下放一邊,一會上傳要用。

(2)引入bintray-release

項目的build.gralde

在你的項目的build.gradle添加 bintray-release 的classpath,注意是項目的build.gradle,不是module的,針對文章開始的圖即 UploadJcenterTest/build.gradle 。

buildscript { repositories { jcenter() }
    dependencies { classpath 'com.android.tools.build:gradle:1.2.3' classpath 'com.novoda:bintray-release:0.3.4' }
}

待上傳moudle的build.gralde

來到你想要上傳的module,針對文章開始的圖即 UploadJcenterTest/basetools/build.gradle 。

apply plugin: 'com.android.library'
apply plugin: 'com.novoda.bintray-release'//添加

android {
  //保持不變
}

dependencies {
    //保持不變
}

//添加
publish {
    userOrg = 'hyman'//bintray.com用戶名
    groupId = 'com.hyman'//jcenter上的路徑
    artifactId = 'basetools'//項目名稱
    publishVersion = '1.0.0'//版本號
    desc = 'Oh hi, this is a nice description for a project, right?'//描述,不重要
    website = 'https://github.com/hyman/basetools'//網站,不重要
}

按照上面編寫即可,細節有標識注釋了,假設按照上述的編寫,最終引入的方式為:

compile 'com.hyman:basetools:1.0.0

完成上面的配置后,就準備上傳了。

上傳

上傳很簡單,執行下面的代碼即可

 ./gradlew clean build bintrayUpload 
 -PbintrayUser=hyman  -PbintrayKey=xxxxxxxxxxxxxxxxxxxxxx  -PdryRun=false

user就是用戶名,key就是我們剛才的讓你保存的key,dryRun是一個配置參數,當為true的時候,會運行所有的環節,但是不會上傳。

ok,下面整理好上面的這段代碼,運行即可。關于運行,你可以選擇在Android Studio的Terminal面板進行,如下圖。

點擊底部的Terminal即可,注意下你當前的路徑是當前項目下,然后enter運行。

然后就是等待,當運行完成,看到 BUILD SUCCESSFUL 就沒問題了,如果有什么問題呢,根據log排查下。

到此就上傳完成了~~~

你可以訪問 https://bintray.com/你的用戶名/maven ,即可看到:

看到我們上傳的項目了,你可以點擊進去看該庫的一些信息,但是注意此時還不能夠直接被引用。

點擊進去該庫,按照下圖,點擊 Add To jcenter

然后隨便寫一下對你該庫的描述,然后點擊發送就可以了。

ok,到此就結束了,不過目前還是不能直接引用的,你需要等待bintray的工作人員審核,審核通過會給你發送站內Message,并且 Add to Jcenter 那個按鈕就小時了,此外你還可以根據你上傳的groupId,訪問該網站 https://jcenter.bintray.com/你的groupId 例如 https://jcenter.bintray.com/com/hyman/

如果可以引用,則能看到如下:

最后總結下整個過程,其實非常簡單:

  1. 申請賬號
  2. 引入bintray-release,在需要上傳的module里面填寫相關publish的信息
  3. 調用上傳的命令
  4. Add to Jcenter 提交審核

基本都是步驟化的東西,真正需要我們填寫的也就publish里面幾個信息。

ok,接下來看上傳編譯時注解的項目。

二、編譯時注解項目上傳到jcenter

如果你暫時不需要這個需求,其實沒必要往下看,因為并不屬于技術類文章,了解這里有寫,可以收藏下,遇到需求再回來看就好了。

其實也很簡單,按照步驟做就好。

我們這里找一個項目作為演示。

為什么說編譯時注解的項目特殊呢?

因為它一般會涉及到多個moudle,比如上圖,涉及到 compilter 、 permission-annotation 、 permission-lib 。

我們在上傳時,這3個module都要進行上傳,這里暫不涉及為啥會這么分module相關知識。

其實利用 bintray-release 上傳的過程也很簡單。

項目的build.gradle

首先針對項目的build.gradle,即圖中 MPermissions/build.gradle

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
        classpath 'com.novoda:bintray-release:0.3.4'//添加
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

//添加
ext {
    userOrg = 'hongyangandroid'
    groupId = 'com.zhy'
    uploadName = 'MPermission'
    publishVersion = '1.0.1'
    desc = 'a easy API to use runtime permission for Android M '
    website = 'https://github.com/hongyangAndroid/MPermissions'
    licences = ['Apache-2.0']
}

只要關注添加的部分,底部的ext主要是為了上傳多個module統一管理的。

module的build.gradle

剩下就是 compilter 、 permission-annotation 、 permission-lib 這三個module,這三個模塊的處理其實是一致的:

  1. apply插件
  2. 填寫publish信息
apply plugin: 'com.android.library'
apply plugin: 'bintray-release'//添加

android {
}

dependencies {

}

//添加
publish {
    artifactId = 'mpermission-api'
    userOrg = rootProject.userOrg
    groupId = rootProject.groupId
    uploadName = rootProject.uploadName
    publishVersion = rootProject.publishVersion
    desc = rootProject.description
    website = rootProject.website
    licences = rootProject.licences
}

3個模塊的配置是一樣的,唯一不同的就是publish中的 artifactId ,不同的module應該有它不同的名字。

對所有需要上傳的module配置完成后,和上面一樣,運行上傳的命令即可。

 ./gradlew clean build bintrayUpload 
 -PbintrayUser=hyman  -PbintrayKey=xxxxxxxxxxxxxxxxxxxxxx  -PdryRun=false

你可以選擇在Android Studio的Terminal面板進行,如下圖。

Android 快速發布開源項目到jcenter

ok,然后就和上面普通項目的步驟一致了,去 Add to Jcenter ,之后等待。

如果審核成功,你會發現3個module都會被同步到jcenter上,比如訪問 http://jcenter.bintray.com/com/zhy/ :

在使用時,對于compiler需要引入apt的插件,大致類似如下用法:

apply plugin: ‘com.neenbedankt.android-apt’

dependencies {

apt ‘com.zhy:mpermission-compiler:1.0.0’

compile ‘com.zhy:mpermission-api:1.0.0’

}

ok,當然本文的重點在于上傳,其他方面細節就不贅述了。

那么如何利用 bintray-release 上傳開源項目到jcenter就介紹完畢了,希望能夠節省你的時間~

來自: http://blog.csdn.net/lmj623565791/article/details/51148825

 本文由用戶 wh95278341 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!