何為Maven?
Maven主要服務(wù)于Java平臺(tái)的項(xiàng)目構(gòu)建、依賴管理和項(xiàng)目信息管理。
注:構(gòu)建是指日常編碼過程中,編譯、運(yùn)行單元測(cè)試、生成文檔、打包和部署等活動(dòng)。
Maven的特點(diǎn)
Maven,作為一個(gè)強(qiáng)大的構(gòu)建工具,有以下幾個(gè)特點(diǎn):
- 跨平臺(tái):無論在Windows,還是在Linux或者M(jìn)ac上,都可以使用相同的指令來完成同樣的任務(wù)。
- 最大化消除構(gòu)建的重復(fù):Maven分析了大量Java項(xiàng)目構(gòu)建過程中重復(fù)出現(xiàn)的、必要的活動(dòng),并將其規(guī)范化、標(biāo)準(zhǔn)化,同時(shí)也提供了實(shí)現(xiàn)常用構(gòu)建功能的Maven插件,滿足了我們?nèi)粘V谐R姷臉?gòu)建任務(wù)。
- 標(biāo)準(zhǔn)化構(gòu)建過程:這一點(diǎn)是兩面的,一是意味著我們需要熟悉Maven的構(gòu)建過程,這增加了我們的學(xué)習(xí)成本;二則意味著我們一旦學(xué)會(huì)之后,放之四海而皆準(zhǔn)。
更多
Maven還是依賴管理工具和項(xiàng)目信息管理工具,提供了中央倉(cāng)庫,幫我們管理構(gòu)件。
在Maven中會(huì)涉及到如下幾個(gè)名詞:
- 坐標(biāo)系統(tǒng):這是Maven用來解決Java項(xiàng)目中包的版本不一致、版本沖突、依賴冗余等問題的基礎(chǔ)。
- 項(xiàng)目信息管理:這部分提供了一個(gè)描述項(xiàng)目信息的標(biāo)準(zhǔn)化列表,如項(xiàng)目著眼解決的問題、項(xiàng)目的開發(fā)人員等。
- 中央倉(cāng)庫:這里是Maven為全世界Java開發(fā)師提供的免費(fèi)“倉(cāng)庫”,在這里可以找到幾乎所有流行的開源類庫。
另外,Maven中還體現(xiàn)了一種軟件開發(fā)過程管理的方法論,即“約定優(yōu)于配置(Convention Over Configuration)”,例如,Maven對(duì)Java項(xiàng)目的項(xiàng)目目錄結(jié)構(gòu)、測(cè)試用例命名方式等都有既定的規(guī)則。
參考材料
Maven實(shí)戰(zhàn)
這本書是我學(xué)習(xí)Maven的主要參考資料,內(nèi)容詳實(shí)全面,Maven的原理、使用方法和高級(jí)應(yīng)用以及必不可少的實(shí)戰(zhàn)都有涉及。另外,作者也是Maven在國(guó)內(nèi)的早期布道者。力薦