如何使用AndroidStudio將開源項(xiàng)目library發(fā)布到j(luò)center

我相信技術(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類型的倉庫

  1. 新建一個(gè)倉庫


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



    倉庫名字有用刊咳,一定得記住,類型要選擇maven企巢,別選擇錯(cuò)了让蕾。

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


  4. 填寫必要信息探孝,然后點(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)就能審核通過。

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末滴肿,一起剝皮案震驚了整個(gè)濱河市泼差,隨后出現(xiàn)的幾起案子呵俏,更是在濱河造成了極大的恐慌,老刑警劉巖普碎,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吼肥,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡麻车,警方通過查閱死者的電腦和手機(jī)缀皱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來动猬,“玉大人唆鸡,你說我怎么就攤上這事≡娌欤” “怎么了争占?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵序目,是天一觀的道長臂痕。 經(jīng)常有香客問我罩息,道長败砂,這世上最難降的妖魔是什么腕巡? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任造虎,我火速辦了婚禮声邦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘豹爹。我一直安慰自己滑蚯,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布肥卡。 她就那樣靜靜地躺著溪掀,像睡著了一般。 火紅的嫁衣襯著肌膚如雪步鉴。 梳的紋絲不亂的頭發(fā)上揪胃,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音氛琢,去河邊找鬼喊递。 笑死,一個(gè)胖子當(dāng)著我的面吹牛阳似,可吹牛的內(nèi)容都是我干的骚勘。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼撮奏,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼调鲸!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起挽荡,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤藐石,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后定拟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體于微,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年青自,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了株依。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡延窜,死狀恐怖恋腕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情逆瑞,我是刑警寧澤荠藤,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站获高,受9級(jí)特大地震影響哈肖,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜念秧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一淤井、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦币狠、人聲如沸游两。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽贱案。三九已至,卻和暖如春渐行,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背铸董。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來泰國打工祟印, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人粟害。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓蕴忆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親悲幅。 傳聞我的和親對(duì)象是個(gè)殘疾皇子套鹅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容