如何上傳自己的Android庫(kù)到JCenter

介紹如何將自己的項(xiàng)目上傳到JCenter摹量。

前言

我們經(jīng)常在Android的gradle文件中看到這些compile腳本,這些腳本其實(shí)就是因?yàn)橹皫?kù)的開(kāi)發(fā)者把對(duì)應(yīng)庫(kù)的jar或aar文件放到了遠(yuǎn)程服務(wù)器上,所以我們可以通過(guò)compile進(jìn)行拉取甥绿。

compile 'com.android.support:recyclerview-v7:27.0.0'
compile 'com.squareup:otto:1.3.7'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.squareup.okhttp:okhttp:2.4.0'
compile 'com.squareup.retrofit:retrofit:1.9.0'

AAR是什么

因?yàn)锳ndroidLibrary一般需要內(nèi)置一些Android特定文件,比如Manifest,Resources脚囊,Assets或者JNI等超出jar文件標(biāo)準(zhǔn)的格式。

jar包是被嵌入在aar文件包中的一部分桐磁。

排布規(guī)則

compile后面的字符串排布規(guī)則是

GROUP_ID:ARTIFACT_ID:VERSION

GROUP_ID

通常用開(kāi)發(fā)者的包名進(jìn)行命名悔耘。

很有可能同一個(gè)上下文中有好幾個(gè)library,這些可以共享同一個(gè)GROUP_ID

ARTIFACT_ID

定義library的真實(shí)名字我擂,比如picasso

VERSION

版本號(hào)衬以,一般是x.x.x格式

Android項(xiàng)目準(zhǔn)備

以一個(gè)簡(jiǎn)單的demo為例缓艳,項(xiàng)目地址在

https://github.com/hgDendi/AndroidJCenterDemo

是一個(gè)HelloWorld項(xiàng)目,其中字符串來(lái)自于mylib module下的MyLib抽象類的靜態(tài)方法看峻。

mylib也是我們這次需要上傳到JCenter的類阶淘。

[圖片上傳失敗...(image-a4b23-1510618281773)]

Module劃分

一般需要把需要上傳的庫(kù)作為一個(gè)獨(dú)立的module,即1 module per 1 library互妓。

一般分為庫(kù)的模塊和使用demo模塊溪窒。

如果想要有一個(gè)以上的庫(kù),請(qǐng)劃分多個(gè)module冯勉。

比如如下的項(xiàng)目結(jié)構(gòu)澈蚌。[圖片上傳失敗...(image-ff756-1510618281774)]

bintray

注冊(cè)賬號(hào),登錄bintray.com灼狰。

新建倉(cāng)庫(kù)

在個(gè)人管理界面點(diǎn)擊“Add New Repository”

[圖片上傳失敗...(image-3108f-1510618281774)]

然后創(chuàng)建一個(gè)Maven倉(cāng)庫(kù)

[圖片上傳失敗...(image-9d5e82-1510618281774)]

創(chuàng)建成功之后點(diǎn)擊"Create New Package"

[圖片上傳失敗...(image-2c9ca8-1510618281774)]

輸入對(duì)應(yīng)信息惜浅,其中Website和VersionControl可以填寫(xiě)github地址,issue填寫(xiě)github的issue地址

[圖片上傳失敗...(image-6992a7-1510618281774)]

點(diǎn)擊CreatePackage伏嗜,你在Bintray上的Maven服務(wù)器就已經(jīng)創(chuàng)建成功了坛悉。

項(xiàng)目文件準(zhǔn)備

Project#gradle

在Project的gradle文件中加入依賴

buildscript {
    ...
    
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0'
        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.6'
        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
    }
}

local.properties

在local.properties中加入用戶信息。

因?yàn)間itignore自動(dòng)忽略local.properties承绸,所以私人信息放在這里是比較安全的裸影。

bintray.user=[...]
bintray.apikey=[...]
bintray.gpg.password=[...]

apikey可以在EditProfile里看到

[圖片上傳失敗...(image-3526b1-1510618281774)]

module的build.gradle

根據(jù)上面步驟中的信息,在lib module的build.gradle文件中增加信息军熏。

apply plugin: 'com.android.library'

ext {
    // 剛剛創(chuàng)建的倉(cāng)庫(kù)名
    bintrayRepo = 'testMaven'
    // package的名字
    bintrayName = 'mylib'

    // owner的groupID
    publishedGroupId = 'com.hgDendi.test'
    libraryName = 'MyLib'
    artifact = 'mylib'

    libraryDescription = 'lib test demo'

    siteUrl = 'https://github.com/hgDendi/AndroidJCenterDemo'
    gitUrl = 'https://github.com/hgDendi/AndroidJCenterDemo.git'

    libraryVersion = '0.0.1'

    developerId = 'dendi'
    developerName = 'Dendi Chan'
    developerEmail = 'hg.dendi@gmail.com'

    licenseName = 'The MIT License'
    licenseUrl = 'https://rem.mit-license.org'
    allLicenses = ["MIT"]
}

如上所示轩猩,則最后生成的gradle script會(huì)是

compile 'com.hgdendi.test:mylib:0.0.1'

增加腳本依賴

在lib module的build.gradle文件下增加一行apply from

apply from: 'https://raw.githubusercontent.com/hgDendi/AndroidJCenterDemo/master/bintray.gradle'
apply from: 'https://raw.githubusercontent.com/hgDendi/AndroidJCenterDemo/master/maveninstall.gradle'

上傳代碼

執(zhí)行g(shù)radlew命令將lib上傳

./gradlew install
./gradlew bintrayUpload

這時(shí)候登錄bintray,就可以看到上傳結(jié)果了荡澎。

[圖片上傳失敗...(image-652553-1510618281774)]

同步到j(luò)center

此時(shí)代碼還是只在你的maven倉(cāng)庫(kù)均践,并未同步到JCenter中。

這時(shí)候點(diǎn)進(jìn)你的package摩幔,點(diǎn)擊AddToJCenter就可以將代碼上傳到JCenter彤委。

[圖片上傳失敗...(image-2332df-1510618281774)]

上傳成功

同步到JCenter有時(shí)候可能需要半天到一天的時(shí)間。

同步成功后或衡,便可以使用compile從服務(wù)器拉取lib了焦影。

dependencies {
//    implementation project(':mylib')
    compile 'com.hgDendi:mylib:1.0.0'
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市封断,隨后出現(xiàn)的幾起案子斯辰,更是在濱河造成了極大的恐慌,老刑警劉巖坡疼,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件彬呻,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)闸氮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)剪况,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人湖苞,你說(shuō)我怎么就攤上這事拯欧∠甓冢” “怎么了财骨?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)藏姐。 經(jīng)常有香客問(wèn)我隆箩,道長(zhǎng),這世上最難降的妖魔是什么羔杨? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任捌臊,我火速辦了婚禮,結(jié)果婚禮上兜材,老公的妹妹穿的比我還像新娘理澎。我一直安慰自己,他們只是感情好曙寡,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布糠爬。 她就那樣靜靜地躺著,像睡著了一般举庶。 火紅的嫁衣襯著肌膚如雪执隧。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,190評(píng)論 1 299
  • 那天户侥,我揣著相機(jī)與錄音镀琉,去河邊找鬼。 笑死蕊唐,一個(gè)胖子當(dāng)著我的面吹牛屋摔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播替梨,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼凡壤,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了耙替?” 一聲冷哼從身側(cè)響起亚侠,我...
    開(kāi)封第一講書(shū)人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎俗扇,沒(méi)想到半個(gè)月后硝烂,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡铜幽,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年滞谢,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了串稀。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡狮杨,死狀恐怖母截,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情橄教,我是刑警寧澤清寇,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站护蝶,受9級(jí)特大地震影響华烟,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜持灰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一盔夜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧堤魁,春花似錦喂链、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至涛漂,卻和暖如春赏表,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背匈仗。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工瓢剿, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人悠轩。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓间狂,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親火架。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鉴象,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

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