Maven是基於項目對象模型(POM),可以通過一小段描述信息來管理項目的構建,報告和文檔的軟件項目管理工具。Maven除了以程序構建能力為特色之外,還提供Ant所缺少的高級項目管理工具。由於Maven的缺省構建規則有較高的可重用性,所以常常用兩三行 Maven構建腳本就可以構建簡單的項目,而使用Ant則需要十幾行。事實上,由於Maven的面向項目的方法,許多Apache Jakarta項目現在使用Maven,而且公司項目采用Maven的比例在持續增長。
Maven這個單詞來自於意第緒語,意為知識的積累,最早在Jakata Turbine項目中它開始被用來試圖簡化構建過程。當時有很多項目,它們的Ant build文件僅有細微的差別,而JAR文件都由CVS來維護。於是Maven創始者開始了Maven這個項目,該項目的清晰定義包括,一種很方便的發布項目信息的方式,以及一種在多個項目中共享JAR的方式。Maven本身描述項目的高級方面,它從Ant借用了絕大多數構建任務。
Maven包含了一個項目對象模型,一組標准集合,一個項目生命周期,一個依賴管理系統和用來運行定義在生命周期階段中插件目標的邏輯。當你使用Maven的時候,你用一個明確定義的項目對象模型來描述你的項目,然後Maven可以應用橫切的邏輯,這些邏輯來自一組共享的(或者自定義的)插件。Maven有一個生命周期,當你運行Maven安裝的時候被調用。這條命令告訴Maven執行一系列的有序的步驟,直到到達你指定的生命周期。遍歷生命周期旅途中的一個影響就是,Maven運行了許多默認的插件目標,這些目標完成了像編譯和創建一個JAR文件這樣的工作。
![](/hh/css/css-img/weixinshare.png)
maven.apache.org - 1009 - Maven