本篇主要講述我們?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是去哪里下載的呢扒吁?
- 這可以說是一個(gè)鏈接,不過是maven倉庫下的鏈接室囊。但是不能像瀏覽網(wǎng)頁那樣在瀏覽器里直接輸入就可以直接瀏覽或者下載雕崩。
- AS去哪里下載取決于你指定了哪個(gè)maven倉庫。也就是根目錄下的build.gradle融撞。
這也就是下面要說的使用步驟:
- 打開根工程下的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基本就夠用了。
- 在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