Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android 快速發布開源項目到jcenter

Android 快速發布開源項目到jcenter

編輯:關於android開發

Android 快速發布開源項目到jcenter


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

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

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

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

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

一、普通項目上傳到jcenter

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

那麼我們這裡模擬一個簡單的項目。

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

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

(1)注冊bintray.com賬號

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

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

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

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

登錄後:

登陸後,你可以點擊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/

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

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

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

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

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

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

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

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

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

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

因為它一般會涉及到多個moudle,比如上圖,涉及到compilterpermission-annotationpermission-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

剩下就是compilterpermission-annotationpermission-lib這三個module,這三個模塊的處理其實是一致的:

apply插件 填寫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面板進行,如下圖。

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就介紹完畢了,希望能夠節省你的時間~

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved