Maven本質(zhì)上是一個(gè)項(xiàng)目管理工具,它將項(xiàng)目開(kāi)發(fā)和管理過(guò)程抽象為一個(gè)項(xiàng)目對(duì)象模型(POM)。開(kāi)發(fā)人員只需進(jìn)行一些簡(jiǎn)單的配置,就可以批量構(gòu)建、報(bào)告和生成項(xiàng)目的文檔。Maven是跨平臺(tái)的,這意味著無(wú)論你是在Windows、Linux還是Mac上,都可以使用相同的命令。
作用
我們一直在尋找避免重復(fù)的方法。Maven最大限度地減少了構(gòu)建重復(fù),抽象了構(gòu)建生命周期,并為絕大多數(shù)構(gòu)建任務(wù)提供了實(shí)現(xiàn)的插件,因此我們不再需要定義流程,甚至不需要實(shí)現(xiàn)其中的一些流程。
Maven作為一個(gè)構(gòu)建工具,不僅能幫助我們實(shí)現(xiàn)自動(dòng)化構(gòu)建,還能抽象出構(gòu)建過(guò)程,并提供構(gòu)建任務(wù)的實(shí)現(xiàn);它是跨平臺(tái)的,并提供與外界一致的操作界面,所有這些都足以讓它成為優(yōu)秀的、受歡迎的構(gòu)建工具。
優(yōu)勢(shì)
當(dāng)然,除了是優(yōu)秀的構(gòu)建項(xiàng)目管理工具外,Maven還有其他與項(xiàng)目管理相關(guān)的特殊優(yōu)勢(shì)。例如,項(xiàng)目相關(guān)的第三方依賴(lài)包,這是每一個(gè)Java程序員都無(wú)法回避的問(wèn)題。
每個(gè)老程序員的電腦上都有一個(gè)專(zhuān)門(mén)的目錄,在那里對(duì)過(guò)去項(xiàng)目開(kāi)發(fā)過(guò)程中使用的第三方j(luò)ar包進(jìn)行分類(lèi)和篩選。新的程序員就遇到了麻煩。在測(cè)試項(xiàng)目時(shí),他們經(jīng)常遇到Class No Found Exceptions,導(dǎo)致一整天的搜索和重啟。
Maven可以統(tǒng)一管理所有依賴(lài)的jar,甚至不同的版本。程序員還可以將自己編寫(xiě)的模塊動(dòng)態(tài)打包成jar包,由它來(lái)管理。需要時(shí),你可以通過(guò)一個(gè)簡(jiǎn)單的描述文件直接告訴Maven,它會(huì)自動(dòng)幫助程序員找到它并將其整合到項(xiàng)目中。而且它還提供了一個(gè)中央倉(cāng)庫(kù),可以幫助我們自動(dòng)下載組件。