maven被許多人認為是一個構建工具。許多人最初是從熟悉ant而轉到maven的,因此很自然地這樣認為maven是一個構建工具。但是maven並不僅僅是一個構建工具,也不是ant的一個替代工具。maven是一個完全不同於ant的產物。ant只是一個簡單的工具箱而maven是模式的應用程序,這些模式完成一個框架,它有可視化、重用性、可維護性、擴展性等特點。
沒有這些特征,多人高效的工作在一個項目上是不可能的。沒有可視化,個人難以知道其它人完成了什么,有用的代碼可能無法重用。當代碼無法重用時,可維護的系統是很難被創建的。當每個人都在試圖弄明白組成項目的所有點點滴滴是什么的時候,很少有人能夠從整體去理解這個項目。隨着團隊成員之間失落情緒達到一定的程度,共享知識會逐漸衰退,最終以糧倉效應結束。當過程不能以相同方式進行時,這是一種自然的結果。
maven誕生在apache項目非常渴望以統一的方式進行時。因此開發者能夠很容易在項目間移動,只需要明白其中一個項目是如何工作的,就能夠理解其它項目是如何工作的。如果一個開發人員花時間理解了一個項目是如何構建的,當他進行下一個項目時,他不必再經歷這一過程。相同的想法可以擴展到測試,文檔生成,報告生成,部署。所有項目共享相同的特征,maven試圖在項目管理中固定它的常用方法。所有項目都需要構建,測試,打包,文檔化,部署。當然,在上面的每一個步驟中都有無盡的變化,但是這些變化發生在預定路徑的范圍內,maven試圖以清晰的方式展現給每一個人。使路徑清晰最簡單的方式就是提供一系列模式給參與項目的每一個人共享。