Maven这个词可以翻译为“知识的积累”,也可以翻译为“专家”或“内行”,是一个跨平台的项目管理工具。Maven主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。
构建(build)是每一位程序员每天都做的工作。除了编写源代码,我们每天有相当一部分时间花在了编译、运行单元测试、生成文档、打包和部署等繁琐且不起眼的工作上,这就是构建。如果手工这样做,成本太高,于是有人用软件的方法让这一系列工作完全自动化,使得软件的构建可以像全自动流水线一样,只需要一条简单的命令,所有繁琐的步骤就能自动完成,很快就能得到最终结果。Maven是一个异常强大的构建工具,能够帮我们自动化构建过程,我们要做的仅仅是使用Maven配置好项目,然后输入简单的命令(如mvn clean install),Maven会帮我们处理那些繁琐的任务。Maven是跨平台的,无论是在Windows上,还是在Linux或Mac上都可以使用同样的命令。Maven还能帮我们标准化构建过程,有了Maven之后,所有项目的构建命令都是简单一致的,极大避免了不必要的学习成本,有利于促进项目团队的标准化。
Maven不仅是构建工具,还是一个依赖管理工具和项目信息管理工具。它提供了中央仓库,能帮我们自动下载构建。Maven还能帮我们管理原本分散在项目中各个角落的项目信息,包括项目描述、开发者列表、版本控制系统地址、许可证、缺陷管理系统地址等,为我们节省大量寻找信息的时间。
使用Maven还有一个额外的好处,即Maven对于项目目录结构、测试用例命名方式等内容都有既定的规则,只要遵循了这些成熟的规则,用户在项目间切换的时候就免去了额外的学习成本,可以说是约定优于配置(Convention Over Configuration)。