如何使用AndroidStudio將開源項目library發布到jcenter

我相信技術愛好者都喜歡開源,也都喜歡分享,隨著技術的慢慢提高,很多開發者想將自己的開源類庫分享出來,對于Android開發者來說,以前使用Eclipse開發時,直接引用類庫或者打成jar包分享出來就行,現在使用AndroidStudio開發,引用類庫直接在build.gradle文件里面添加一行引用代碼即可。我們帶著問題進入分析。

為什么只需要添加一行引用代碼即可

AndroidStudio是從Maven Repository服務器下載類庫的?;旧嫌衘center和Maven Central這兩個服務器用于下載Android的類庫。 一開始AndroidStudio是使用MavenCentral作為默認的遠程倉庫下載類庫的。但是MavenCentral有一些問題沒有解決。首先是對于開發者不友好,開發者想上傳自己的類庫到MavenCentral非常困難,所以后來AndroidStudio團隊決定把默認遠程倉庫換成jcenter。

所以我們在gradle里經常能夠看到如下的代碼配置:

allprojects {
    repositories {
        jcenter()
    }
}

這就是jcenter倉庫的配置。

引用類庫代碼的含義

在gradle引用類庫的時候,我們經??吹竭@樣形式的代碼:

compile 'com.loonggg.godcoder.view:circleprogressbar:1.0.0'

我們從中可以看出這行代碼用:分成了三部分:xxxx:xxx:xx,其實意思就是:GROUP_ID:ARTIFACT_ID:VERSION。其實GROUP_ID對應的是com.loonggg.godcoder.view:circleprogressbar,相當于我們建立項目時的包名,ARTIFACT_ID對應的是circleprogressbar,相當于這個類庫的名稱,后邊的VIESION對應的非常顯而易見,就是1.0.0,相當于版本控制的代號。

如何上傳到jcenter

申請bintray賬號

在bintray.com上注冊一個賬號。

網址:https://bintray.com/

新建一個maven類型的倉庫

  1. 新建一個倉庫


  2. 選擇類型,填寫倉庫名字,填寫介紹信息



    倉庫名字有用,一定得記住,類型要選擇maven,別選擇錯了。

  3. 在新建的maven類型倉庫下Add New Package


  4. 填寫必要信息,然后點擊Create Package



    package名和許可證,版本號必填,其他不重要,暫時可不填寫

在AS中配置信息,上傳類庫

配置賬號用戶名和key

我們需要設置bintray的username和API Key來進行bintray的加密認證。這些信息將寫在local.properties文件里。如下:

bintray.user=YOUR_BINTRAY_USERNAME
bintray.apikey=YOUR_BINTRAY_API_KEY

bintray.user里對應的就是你注冊賬號的用戶名,apikey可以在個人信息編輯里找到。如下:


配置Library的module的build.gradle文件

在build.gradle文件中添加的代碼如下:

ext {
    bintrayRepo = 'loonggg'
    bintrayName = 'CircleProgressBar'

    publishedGroupId = 'com.loonggg.godcoder.view'
    libraryName = 'CircleProgressBar'
    artifact = 'circleprogressbarlibrary'

    libraryDescription = 'CircleProgressBar is the dynamic display of a circle progress control.come on'

    siteUrl = 'https://github.com/loonggg/CircleProgressBar'
    gitUrl = 'https://github.com/loonggg/CircleProgressBar.git'

    libraryVersion = '1.0.1'

    developerId = 'loonggg'
    developerName = 'gengguanglong'
    developerEmail = 'gengguanglong@gmail.com'

    licenseName = 'The Apache Software License, Version 2.0'
    licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
    allLicenses = ["Apache-2.0"]
}
  • bintrayRepo對應的就是建立的maven倉庫時填寫的名字
  • bintrayName對應的就是新建的package的名字
  • publishedGroupId對應的就是我們之前提到的GROUP_ID
  • artifact對應的就是之前我們提到的ARTIFACT_ID
  • libraryVersion顧名思義就是VERSION

在build.gradle文件的最末行添加下面兩行代碼

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

配置project的build.gradle文件

如下:

 dependencies {
        classpath 'com.android.tools.build:gradle:2.0.0'
        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.6'
        classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.0.0"
        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
    }

命令行操作上傳

在AndroidStudio提供的Terminal窗口執行如下命令:

gradlew bintrayUpload

如果上傳成功的話,幾分鐘后會提示BUILD SUCCESSFUL。

猜猜,這個類庫引用的代碼是什么樣子的?如下:

compile 'com.loonggg.godcoder.view:circleprogressbarlibrary:1.0.1'

將上傳成功的類庫add到JCenter

如果以為僅僅上傳成功就能用了,就大錯特錯了,需要將類庫添加到Jcenter中之后,審核過后才能用,方式如下:



輸入你的包名,找到你上傳的類庫,接下來會跳到一個Request to include package CircleProgressBar in jcenter的頁面,寫一下相關的介紹或者不寫也可以,直接點擊Send按鈕就可以了。接下來等著審核就行了,大約1小時之內就能審核通過。

收到成功的消息后,就可以直接用了,等著吧,到這里就講完了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容