Maven系列——寫在前面

本博客為個(gè)人原創(chuàng),轉(zhuǎn)載需在明顯位置注明出處

Maven是什么####

Maven是一個(gè)項(xiàng)目管理和構(gòu)建自動(dòng)化工具。這么說可能有點(diǎn)籠統(tǒng)抽象,具體一點(diǎn)就是,我們可以利用Maven這個(gè)管理工具來打包(包括apk,jar,aar等),生成javadoc,上傳到遠(yuǎn)程倉庫,依賴遠(yuǎn)程倉庫中的library等。

為什么不用Gradle####

看到上面的定義,有人會(huì)有疑問了,這些Gradle都可以做啊,為什么還要那么麻煩換成Maven來管理?說說我個(gè)人觀點(diǎn)的轉(zhuǎn)變,早在兩年前我就開始接觸Android Studio和Gradle構(gòu)建了,但是你要問我為什么用Gradle來構(gòu)建工程,除了一臉懵逼我什么也表達(dá)不出來。因?yàn)镚radle是Android Studio集成的構(gòu)建工具,是Google推薦的,所以它一定是好的,完美的。之前我也一直是這么認(rèn)為的,直到有一天,公司項(xiàng)目需要用Maven私服倉庫來管理,記得當(dāng)時(shí)由于上傳的問題,我找到了公司的資深配管,聊著聊著就聊到了構(gòu)建工具的問題。以她多年的配管經(jīng)驗(yàn)來講,Gradle雖然是官方推薦,但并不是一個(gè)好工具,相對(duì)來說,她更傾向于我們跟Server開發(fā)一樣,使用Maven來進(jìn)行構(gòu)建管理。當(dāng)時(shí)她講了一大堆理由,不好意思我當(dāng)時(shí)聽得是一臉懵逼,現(xiàn)在也記不太清楚了,后來我就換成Maven來進(jìn)行項(xiàng)目構(gòu)建管理。

Maven倉庫####

Maven除了打包構(gòu)建工程之外,還有一個(gè)倉庫的概念,我們先來看張圖:

maven倉庫

用Maven依賴v4包為例,結(jié)合上圖分步驟講解一下Maven倉庫的工作流程:

  1. 每一位用戶的電腦都是一個(gè)Maven倉庫,因?yàn)镸aven安裝成功之后會(huì)在本地創(chuàng)建一個(gè)本地倉庫做緩存,只要下載成功的包就會(huì)直接從緩存里面去取(緩存的路徑和artifactId,groudId和version有關(guān),后續(xù)篇章我會(huì)詳細(xì)講解)

  2. 我們通過compile 'com.android.support:support-v4:24.0.0'配置來依賴v4包,首先Maven識(shí)別出你需要依賴的是24.0.0的v4包,第一步它會(huì)先在本地倉庫中尋找,若找到了,直接依賴無需下載,如果未找到,就會(huì)去公司的Maven私服倉庫下載(注1:有些公司有私服并且私服代理了中央倉庫,有些則是直接依賴的中央倉庫;注2:遠(yuǎn)程倉庫的地址在/.m2/settings.xml文件中配置)

  3. 下載成功的v4包會(huì)按一定的路徑規(guī)律存放在本地倉庫中,然后建立依賴關(guān)系,以后再通過Maven依賴同樣版本的v4包,就可以直接從本地倉庫中獲取,不需要再次下載

上述是用Maven依賴時(shí)的工作流程,打包上傳稍有一點(diǎn)不一樣,根據(jù)不同的Maven命令執(zhí)行不同的操作,打包(mvn package)是在工程目錄下創(chuàng)建一個(gè)target文件夾,所有打包生成的文件都會(huì)存在這個(gè)target路徑下,安裝(mvn install)是將打好的包存入本地倉庫,上傳(mvn deploy)是將打好的包上傳至遠(yuǎn)程倉庫,倉庫地址和用戶名密碼是在settings.xml文件中配置。

你需要的準(zhǔn)備工作####

  1. Maven的安裝,環(huán)境變量的配置(說白了Maven是一個(gè)工具,系統(tǒng)是不自帶的,需要安裝并且配置好環(huán)境變量)

  2. Maven遠(yuǎn)程倉庫的創(chuàng)建(如果你只是自己打包自己用,那遠(yuǎn)程倉庫可要可不要,如果是團(tuán)隊(duì)協(xié)作,那么遠(yuǎn)程倉庫必不可少,有條件的可以搭一個(gè)私服來使用)

如果你不知道如何準(zhǔn)備,請(qǐng)咨詢度娘和Google。好了,這篇文章就介紹到這,下一篇我們Hello World再見。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • |-1-更新內(nèi)容[6.從倉庫解析依賴的機(jī)制(重要)] 1Maven倉庫作用 倉庫用來存儲(chǔ)所有項(xiàng)目使用到構(gòu)件,在ma...
    zlcook閱讀 6,447評(píng)論 0 25
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,254評(píng)論 6 342
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評(píng)論 19 139
  • 自從在大四的時(shí)候看過一本《當(dāng)下的力量》,有一個(gè)想法在腦中根深蒂固。雖然有時(shí)候還做不到,但是卻已經(jīng)開始有意識(shí)的在注意...
    江舟Eddi閱讀 368評(píng)論 0 1
  • "夏涵,醒醒,起床了!"丹丹老師的聲音一直在我耳邊回蕩。我十分不情愿的起床,刷牙,洗臉。再看看時(shí)間,才六點(diǎn)二...
    夏墨點(diǎn)殘陽閱讀 593評(píng)論 0 2

友情鏈接更多精彩內(nèi)容