我相信技術愛好者都喜歡開源,也都喜歡分享,隨著技術的慢慢提高,很多開發者想將自己的開源類庫分享出來,對于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上注冊一個賬號。
新建一個maven類型的倉庫
-
新建一個倉庫
-
選擇類型,填寫倉庫名字,填寫介紹信息
倉庫名字有用,一定得記住,類型要選擇maven,別選擇錯了。
-
在新建的maven類型倉庫下Add New Package
-
填寫必要信息,然后點擊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小時之內就能審核通過。
收到成功的消息后,就可以直接用了,等著吧,到這里就講完了。