Maven是一個(gè)java項(xiàng)目管理工具。它基于項(xiàng)目對(duì)象模型(POM)的概念,可以從中央信息中管理項(xiàng)目的構(gòu)建、報(bào)告以及文檔。它包含了一個(gè)項(xiàng)目對(duì)象模型,一組標(biāo)準(zhǔn)集合,一個(gè)項(xiàng)目生命周期,一個(gè)依賴(lài)管理系統(tǒng)和用來(lái)運(yùn)行定義在生命周期階段中插件目標(biāo)的邏輯。Maven的缺省構(gòu)建規(guī)則具有較高的可重用性,所以常常用兩三行 Maven 構(gòu)建腳本就可以構(gòu)建簡(jiǎn)單的項(xiàng)目。Maven的主要目標(biāo)是允許開(kāi)發(fā)人員在最短的時(shí)間內(nèi)了解開(kāi)發(fā)工作的完整狀態(tài)。
功能特點(diǎn):
簡(jiǎn)單的項(xiàng)目設(shè)置,遵循最佳實(shí)踐,在幾秒鐘內(nèi)啟動(dòng)一個(gè)新的項(xiàng)目或模塊
所有項(xiàng)目的一致使用意味著新開(kāi)發(fā)人員進(jìn)入項(xiàng)目的時(shí)間不會(huì)增加
優(yōu)越的依賴(lài)關(guān)系管理包括自動(dòng)更新,依賴(lài)關(guān)閉(也稱(chēng)為傳遞依賴(lài)關(guān)系)
能夠同時(shí)輕松處理多個(gè)項(xiàng)目
圖書(shū)館和元數(shù)據(jù)的大量不斷增長(zhǎng)的庫(kù),使用開(kāi)箱即用,以及最大的開(kāi)放源碼項(xiàng)目的安排,實(shí)時(shí)提供最新版本
可擴(kuò)展,能夠輕松地使用Java或腳本語(yǔ)言編寫(xiě)插件
即時(shí)訪(fǎng)問(wèn)新功能,很少或沒(méi)有額外的配置
在Maven之外的依賴(lài)關(guān)系管理和部署的Ant任務(wù)
基于模型的構(gòu)建:Maven能夠根據(jù)項(xiàng)目的元數(shù)據(jù)將任意數(shù)量的項(xiàng)目構(gòu)建到預(yù)定義的輸出類(lèi)型(如JAR,WAR或分發(fā))中,而無(wú)需在大多數(shù)情況下執(zhí)行任何腳本。
項(xiàng)目信息的相干站點(diǎn):使用與構(gòu)建過(guò)程相同的元數(shù)據(jù),Maven可以生成一個(gè)網(wǎng)站或PDF,包括您需要添加的任何文檔,并添加到有關(guān)項(xiàng)目開(kāi)發(fā)狀態(tài)的標(biāo)準(zhǔn)報(bào)告中。這些信息的例子可以在這個(gè)網(wǎng)站的左側(cè)導(dǎo)航下的“項(xiàng)目信息”和“項(xiàng)目報(bào)告”子菜單的底部看到。
發(fā)布管理和分發(fā)發(fā)布:無(wú)需額外的配置,Maven將與您的源代碼管理系統(tǒng)(如CVS)進(jìn)行集成,并根據(jù)某個(gè)標(biāo)簽管理項(xiàng)目的發(fā)布。它也可以將其發(fā)布到分發(fā)位置供其他項(xiàng)目使用。Maven能夠發(fā)布單個(gè)輸出,例如JAR,包括其他依賴(lài)關(guān)系和文檔的歸檔,或作為源分發(fā)。
依賴(lài)管理:Maven鼓勵(lì)使用JAR和其他依賴(lài)關(guān)系的中央存儲(chǔ)庫(kù)。Maven提供了一個(gè)機(jī)制,您的項(xiàng)目的客戶(hù)端可以使用它來(lái)從中央JAR存儲(chǔ)庫(kù)下載與Perl的CPAN類(lèi)似的從項(xiàng)目構(gòu)建所需的任何JAR。這允許Maven的用戶(hù)在項(xiàng)目之間重用JAR,并鼓勵(lì)項(xiàng)目之間的通信,以確保處理向后兼容性問(wèn)題。
常用命令:
mvn archetype:create 創(chuàng)建Maven項(xiàng)目
mvn compile 編譯源代碼
mvn deploy 發(fā)布項(xiàng)目
mvn test-compile 編譯測(cè)試源代碼
mvn test 運(yùn)行應(yīng)用程序中的單元測(cè)試
mvn site 生成項(xiàng)目相關(guān)信息的網(wǎng)站
mvn clean 清除項(xiàng)目目錄中的生成結(jié)果
mvn package 根據(jù)項(xiàng)目生成的jar
mvn install 在本地Repository中安裝jar
mvn eclipse:eclipse 生成eclipse項(xiàng)目文件
mvnjetty:run 啟動(dòng)jetty服務(wù)
mvntomcat:run 啟動(dòng)tomcat服務(wù)
mvn clean package -Dmaven.test.skip=true:清除以前的包后重新打包,跳過(guò)測(cè)試類(lèi)