maven被许多人认为是一个构建工具。许多人最初是从熟悉ant而转到maven的,因此很自然地这样认为maven是一个构建工具。但是maven并不仅仅是一个构建工具,也不是ant的一个替代工具。maven是一个完全不同于ant的产物。ant只是一个简单的工具箱而maven是模式的应用程序,这些模式完成一个框架,它有可视化、重用性、可维护性、扩展性等特点。
没有这些特征,多人高效的工作在一个项目上是不可能的。没有可视化,个人难以知道其它人完成了什么,有用的代码可能无法重用。当代码无法重用时,可维护的系统是很难被创建的。当每个人都在试图弄明白组成项目的所有点点滴滴是什么的时候,很少有人能够从整体去理解这个项目。随着团队成员之间失落情绪达到一定的程度,共享知识会逐渐衰退,最终以粮仓效应结束。当过程不能以相同方式进行时,这是一种自然的结果。
maven诞生在apache项目非常渴望以统一的方式进行时。因此开发者能够很容易在项目间移动,只需要明白其中一个项目是如何工作的,就能够理解其它项目是如何工作的。如果一个开发人员花时间理解了一个项目是如何构建的,当他进行下一个项目时,他不必再经历这一过程。相同的想法可以扩展到测试,文档生成,报告生成,部署。所有项目共享相同的特征,maven试图在项目管理中固定它的常用方法。所有项目都需要构建,测试,打包,文档化,部署。当然,在上面的每一个步骤中都有无尽的变化,但是这些变化发生在预定路径的范围内,maven试图以清晰的方式展现给每一个人。使路径清晰最简单的方式就是提供一系列模式给参与项目的每一个人共享。