Maven是一個java項目管理工具。它基于項目對象模型(POM)的概念,可以從中央信息中管理項目的構(gòu)建、報告以及文檔。它包含了一個項目對象模型,一組標(biāo)準(zhǔn)集合,一個項目生命周期,一個依賴管理系統(tǒng)和用來運(yùn)行定義在生命周期階段中插件目標(biāo)的邏輯。Maven的缺省構(gòu)建規(guī)則具有較高的可重用性,所以常常用兩三行 Maven 構(gòu)建腳本就可以構(gòu)建簡單的項目。Maven的主要目標(biāo)是允許開發(fā)人員在最短的時間內(nèi)了解開發(fā)工作的完整狀態(tài)。

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