我相信技術(shù)愛好者都喜歡開源鹅颊,也都喜歡分享墓造,隨著技術(shù)的慢慢提高觅闽,很多開發(fā)者想將自己的開源類庫分享出來,對(duì)于Android開發(fā)者來說尸闸,以前使用Eclipse開發(fā)時(shí)孕锄,直接引用類庫或者打成jar包分享出來就行,現(xiàn)在使用AndroidStudio開發(fā)宦芦,引用類庫直接在build.gradle文件里面添加一行引用代碼即可轴脐。我們帶著問題進(jìn)入分析。
為什么只需要添加一行引用代碼即可
AndroidStudio是從Maven Repository服務(wù)器下載類庫的舀患∑疲基本上有jcenter和Maven Central這兩個(gè)服務(wù)器用于下載Android的類庫。 一開始AndroidStudio是使用MavenCentral作為默認(rèn)的遠(yuǎn)程倉庫下載類庫的低匙。但是MavenCentral有一些問題沒有解決碳锈。首先是對(duì)于開發(fā)者不友好售碳,開發(fā)者想上傳自己的類庫到MavenCentral非常困難,所以后來AndroidStudio團(tuán)隊(duì)決定把默認(rèn)遠(yuǎn)程倉庫換成jcenter间景。
所以我們?cè)趃radle里經(jīng)常能夠看到如下的代碼配置:
allprojects {
repositories {
jcenter()
}
}
這就是jcenter倉庫的配置艺智。
引用類庫代碼的含義
在gradle引用類庫的時(shí)候十拣,我們經(jīng)常看到這樣形式的代碼:
compile 'com.loonggg.godcoder.view:circleprogressbar:1.0.0'
我們從中可以看出這行代碼用:分成了三部分:xxxx:xxx:xx泽西,其實(shí)意思就是:GROUP_ID:ARTIFACT_ID:VERSION缰趋。其實(shí)GROUP_ID對(duì)應(yīng)的是com.loonggg.godcoder.view:circleprogressbar埠胖,相當(dāng)于我們建立項(xiàng)目時(shí)的包名淳玩,ARTIFACT_ID對(duì)應(yīng)的是circleprogressbar蜕着,相當(dāng)于這個(gè)類庫的名稱红柱,后邊的VIESION對(duì)應(yīng)的非常顯而易見蓖乘,就是1.0.0嘉抒,相當(dāng)于版本控制的代號(hào)。
如何上傳到j(luò)center
申請(qǐng)bintray賬號(hào)
在bintray.com上注冊(cè)一個(gè)賬號(hào)隶症。
網(wǎng)址:https://bintray.com/
新建一個(gè)maven類型的倉庫
-
新建一個(gè)倉庫
-
選擇類型蚂会,填寫倉庫名字耗式,填寫介紹信息
倉庫名字有用刊咳,一定得記住,類型要選擇maven企巢,別選擇錯(cuò)了让蕾。
-
在新建的maven類型倉庫下Add New Package
-
填寫必要信息探孝,然后點(diǎn)擊Create Package
package名和許可證顿颅,版本號(hào)必填,其他不重要庇配,暫時(shí)可不填寫
在AS中配置信息捞慌,上傳類庫
配置賬號(hào)用戶名和key
我們需要設(shè)置bintray的username和API Key來進(jìn)行bintray的加密認(rèn)證柬批。這些信息將寫在local.properties文件里袖订。如下:
bintray.user=YOUR_BINTRAY_USERNAME
bintray.apikey=YOUR_BINTRAY_API_KEY
bintray.user里對(duì)應(yīng)的就是你注冊(cè)賬號(hào)的用戶名洛姑,apikey可以在個(gè)人信息編輯里找到皮服。如下:
配置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對(duì)應(yīng)的就是建立的maven倉庫時(shí)填寫的名字
- bintrayName對(duì)應(yīng)的就是新建的package的名字
- publishedGroupId對(duì)應(yīng)的就是我們之前提到的GROUP_ID
- artifact對(duì)應(yīng)的就是之前我們提到的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窗口執(zhí)行如下命令:
gradlew bintrayUpload
如果上傳成功的話,幾分鐘后會(huì)提示BUILD SUCCESSFUL蜀细。
猜猜奠衔,這個(gè)類庫引用的代碼是什么樣子的?如下:
compile 'com.loonggg.godcoder.view:circleprogressbarlibrary:1.0.1'
將上傳成功的類庫add到JCenter
如果以為僅僅上傳成功就能用了痊夭,就大錯(cuò)特錯(cuò)了脏里,需要將類庫添加到Jcenter中之后,審核過后才能用番舆,方式如下:
輸入你的包名恨狈,找到你上傳的類庫呛讲,接下來會(huì)跳到一個(gè)Request to include package CircleProgressBar in jcenter的頁面贝搁,寫一下相關(guān)的介紹或者不寫也可以,直接點(diǎn)擊Send按鈕就可以了弦讽。接下來等著審核就行了关面,大約1小時(shí)之內(nèi)就能審核通過。
收到成功的消息后捂齐,就可以直接用了缩抡,等著吧瞻想,到這里就講完了。