Maven 是什么?有什么用?
Maven 是一個(gè)(POM:Project Object Model)
,一組標(biāo)準(zhǔn)集合。由于 Maven 使用標(biāo)準(zhǔn)目錄布局和默認(rèn)構(gòu)建生命周期,開發(fā)團(tuán)隊(duì)幾乎可以立即自動(dòng)化項(xiàng)目的構(gòu)建基礎(chǔ)設(shè)施。在多個(gè)開發(fā)團(tuán)隊(duì)環(huán)境的情況下,Maven 可以在很短的時(shí)間內(nèi)按照標(biāo)準(zhǔn)設(shè)置工作方式。
Maven 之前,更多的是使用 Ant 的項(xiàng)目構(gòu)建工具,Ant 有一個(gè)特點(diǎn),每次都得寫,每次都寫的差不多,配置也臃腫。所以,后來(lái)搞出來(lái) Maven。Maven 就是最先進(jìn)的版本構(gòu)建工具嗎?不是的,只不過(guò),目前在 Java 領(lǐng)域 Maven 使用比較多。除了 Maven,還有 Gradle。
它的主要功能有:
提供了一套標(biāo)準(zhǔn)化的項(xiàng)目結(jié)構(gòu);
提供了一套標(biāo)準(zhǔn)化的構(gòu)建流程(編譯,測(cè)試,打包,發(fā)布……);
提供了一套依賴管理機(jī)制。
為了實(shí)現(xiàn)上面的主要功能,Maven提供了兩大核心:
依賴管理:對(duì) jar 的統(tǒng)一管理(Maven 提供了一個(gè) Maven 的中央倉(cāng)庫(kù),當(dāng)我們?cè)陧?xiàng)目中添加完會(huì)自動(dòng)去中央倉(cāng)庫(kù)下載相關(guān)的依賴,并且解決依賴的依賴問題)
項(xiàng)目構(gòu)建:對(duì)項(xiàng)目進(jìn)行編譯、測(cè)試、打包、部署、上傳到私服等
Maven模型
項(xiàng)目對(duì)象模型 (Project Object Model)
依賴
(Dependency)插件(Plugin)
Maven 使用一組標(biāo)識(shí)符(也稱為坐標(biāo))來(lái)唯一標(biāo)識(shí)項(xiàng)目并指定應(yīng)如何打包項(xiàng)目工件:
groupId: 創(chuàng)建項(xiàng)目的公司或組的唯一基本名稱
artifactId: 項(xiàng)目的唯一名稱
version:項(xiàng)目的一個(gè)版本
packaging: 一種打包方法(例如WAR / JAR / ZIP)
其中所有 POM 文件都需要項(xiàng)目元素和三個(gè)必填字段:groupId、artifactId、version。
其中的前三個(gè) ( groupId:artifactId:version ) 結(jié)合形成唯一標(biāo)識(shí)符,并且是您指定項(xiàng)目將使用的外部庫(kù)(例如 JAR)版本的機(jī)制。
以下列表顯示了最重要的 Maven生命周期階段:
validate: 檢查項(xiàng)目的正確性
compile: 將提供的源代碼編譯成二進(jìn)制工件
test: 執(zhí)行單元測(cè)試
package: 將編譯后的代碼打包*到歸檔文件中
integration-test: 執(zhí)行額外的測(cè)試,這需要打包
verify——檢查包是否有效
install – 將包文件安裝到本地 Maven 存儲(chǔ)庫(kù)
deploy – 將包文件部署到遠(yuǎn)程服務(wù)器或存儲(chǔ)庫(kù)
WRITE-BUG研發(fā)團(tuán)隊(duì)衷心希望【W(wǎng)RITE-BUG數(shù)字空間】可以給每位同學(xué)一個(gè)屬于自己的秘密空間,同時(shí)祝愿大家在“公開圈子”世界里,遇見志同道合的伙伴們,因?yàn)槲覀兣c大家一樣,都曾孤獨(dú)前行著。


