在AndroidStudio上使用maven(一)

本篇主要講述我們?nèi)粘J褂弥泻蚼aven相關(guān)的基礎(chǔ)概念馍盟。
后面兩篇主要講述

一于置、按照慣例,先普及一下概念贞岭,后面會(huì)用到

你也可以直接跳過八毯,后面用到的時(shí)候,再回來看瞄桨。

1. maven

Maven全名叫Apache Maven话速,是一個(gè)軟件項(xiàng)目管理和項(xiàng)目自動(dòng)構(gòu)建的工具。由Apache軟件基金會(huì)開發(fā)芯侥。

2. Maven倉庫

用來存放maven包的地方泊交。比如我們把自己的library生成了一個(gè)jar或者aar,并把jar/aar上傳到maven倉庫上柱查。之后別人在需要使用的地方廓俭,就直接compile你在maven倉庫上的包就可以了。也就是我們常用的在Android Studio上使用遠(yuǎn)程依賴的情況唉工。Maven倉庫可以放在本地研乒,也可以放在某個(gè)遠(yuǎn)程服務(wù)器上。 可以是私有倉庫淋硝,也可以是公開的雹熬。比如Android Studio上常用到的jcenter和Mavne central宽菜。

3. jcenter

jcenter是一個(gè)由 bintray.com維護(hù)的Maven倉庫 。

4. Maven Central

sonatype.org維護(hù)的Maven倉庫竿报。
注意:jcenter和maven central都是Maven倉庫铅乡,只不過由不同的人,在不同的服務(wù)器上進(jìn)行維護(hù)而已仰楚。

5. POM

Project Object Model隆判。這是一個(gè)xml文件犬庇,Maven Package就是由POM構(gòu)成的僧界。

二、Android Studio上使用的Maven倉庫中的包

我們在用AS進(jìn)行開發(fā)時(shí)臭挽,有時(shí)需要用到第三方的庫捂襟,比如gson。這時(shí)候你可以選擇像Eclipse中那樣欢峰,導(dǎo)入一個(gè)jar包葬荷。也可以用的更簡單一些,直接在module下build.gradle中的dependencies 加入一行:

compile 'com.google.code.gson:gson:2.3.1'

就可以達(dá)到和jar包一樣的效果纽帖,簡單快捷宠漩。
這里你應(yīng)該會(huì)問,這是一個(gè)下載鏈接嗎懊直?加入了這行AS是去哪里下載的呢扒吁?

  1. 這可以說是一個(gè)鏈接,不過是maven倉庫下的鏈接室囊。但是不能像瀏覽網(wǎng)頁那樣在瀏覽器里直接輸入就可以直接瀏覽或者下載雕崩。
  2. AS去哪里下載取決于你指定了哪個(gè)maven倉庫。也就是根目錄下的build.gradle融撞。

這也就是下面要說的使用步驟:

  1. 打開根工程下的build.gradle盼铁。有下面的這一段代碼
allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
        maven {
            url 'file:///Users/my-user-name/Documents/Android/repo/'
        }
        maven {
            url 'http://192.168.99.100:8081/content/repositories/releases/'
        }
    }
}

這個(gè)標(biāo)簽的含義就是定義下面所有的module使用下面所列出的倉庫。

  • 使用穩(wěn)定版的AS默認(rèn)是jcenter()尝偎。
  • 樓主這里用的是預(yù)覽版饶火,默認(rèn)是google()和jcenter()。
  • 下面兩個(gè)maven地址分別是本地的maven倉庫和遠(yuǎn)程的maven倉庫致扯。
    一般情況下不需要使用這么多肤寝,一個(gè)jcenter基本就夠用了。
  1. 在module下的build.gradle中急前,加入自己要依賴的maven包地址醒陆。如上面的
dependencies {
        compile 'com.google.code.gson:gson:2.3.1'
}

這樣就可以使用了。這里并沒有什么難度裆针,只是幫你先梳理清關(guān)系刨摩。

那么問題就來了寺晌,這里是我用別人的包。如果我也有一個(gè)包澡刹,也想通過compile直接使用呻征,該怎么辦呢?很簡單就是把你的包也上傳到maven倉庫罢浇,比如jcenter陆赋、maven central,或者搭建一個(gè)自己的maven倉庫(可是本地也可以是遠(yuǎn)程的)嚷闭。下面來對(duì)比分析一下攒岛。

三、先來看下兩個(gè)標(biāo)準(zhǔn)的maven庫:jcenter和maven central

這兩個(gè)都是標(biāo)準(zhǔn)的maven倉庫胞锰。有很多優(yōu)秀的第三方庫在這他們上面灾锯,極大的方便了開發(fā)者。
不過值得注意的是AS上新建項(xiàng)目嗅榕,默認(rèn)的倉庫是jcenter顺饮,卻不是maven central。其實(shí)最開始的AS版本默認(rèn)的是maven central凌那,但是maven central對(duì)于開發(fā)者太過于繁瑣兼雄,不友好。所以后期AS團(tuán)隊(duì)就把默認(rèn)的maven倉庫換成了jcenter帽蝶。
下面來簡單對(duì)比一下這兩個(gè)庫的區(qū)別赦肋。

  • jcenter是maven central的超集。也就是說maven central上有的庫嘲碱,jcenter上都有金砍。但是jcenter上有的庫,在maven central上不一定有麦锯。
  • 上傳到j(luò)center上的庫恕稠,可以一鍵發(fā)布到maven central上。十分簡單扶欣。
  • jcenter界面更友好鹅巍。
  • jcenter通過CDN發(fā)送library,下載更快料祠。

四骆捧、認(rèn)識(shí)一下Maven倉庫的鏈接

還是以gson為例,我們指定了jcenter髓绽,然后在dependencies中加入

compile 'com.google.code.gson:gson:2.3.1'

就可以了敛苇。其中com.google.code.gson:gson:2.3.1稱為library的庫鏈接,也成為庫地址顺呕。由三部分組成:

GROUP_ID:ARTIFACT_ID:VERSION
  • GROUP_ID:通常以開發(fā)者包名緊跟著library的group名稱來命名枫攀。如上面的就是com.google.code+gson來命名括饶。
  • ARTIFACT_ID:你的library的真實(shí)名稱。

artifact ['ɑrt?,f?kt] n. 人工制品来涨;手工藝品

  • VERSION:就是你library的版本號(hào)图焰。
    三者之間以半角冒號(hào)分隔。

為避免章節(jié)過長蹦掐,本篇就到此技羔。
下一篇:上傳library到j(luò)center和maven central

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市卧抗,隨后出現(xiàn)的幾起案子藤滥,更是在濱河造成了極大的恐慌,老刑警劉巖颗味,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件超陆,死亡現(xiàn)場離奇詭異牺弹,居然都是意外死亡浦马,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門张漂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來晶默,“玉大人,你說我怎么就攤上這事航攒』嵌福” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵漠畜,是天一觀的道長币他。 經(jīng)常有香客問我,道長憔狞,這世上最難降的妖魔是什么蝴悉? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮瘾敢,結(jié)果婚禮上拍冠,老公的妹妹穿的比我還像新娘。我一直安慰自己簇抵,他們只是感情好庆杜,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著碟摆,像睡著了一般晃财。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上典蜕,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天断盛,我揣著相機(jī)與錄音雏逾,去河邊找鬼。 笑死郑临,一個(gè)胖子當(dāng)著我的面吹牛栖博,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播厢洞,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼仇让,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了躺翻?” 一聲冷哼從身側(cè)響起丧叽,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎公你,沒想到半個(gè)月后踊淳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡陕靠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年迂尝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片剪芥。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡垄开,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出税肪,到底是詐尸還是另有隱情溉躲,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布益兄,位于F島的核電站锻梳,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏净捅。R本人自食惡果不足惜疑枯,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望灸叼。 院中可真熱鬧神汹,春花似錦、人聲如沸古今。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽捉腥。三九已至氓拼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背桃漾。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來泰國打工坏匪, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人撬统。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓适滓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親恋追。 傳聞我的和親對(duì)象是個(gè)殘疾皇子凭迹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

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