maven是一个项目管理和构建自动化工具。

maven采用纯Java编写。采用了一种被称之为project object model (POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中,通过该文件,maven可以管理项目的整个声明周期,包括编译,构建,测试,发布,报告等等。

maven将自己定位为一个项目管理工具。它负责管理项目开发过程中的几乎所有的东西:

  1. 版本

    maven有自己的版本定义和规则

  2. 构建

    maven支持许多种的应用程序类型,对于每一种支持的应用程序类型都定义好了一组构建规则和工具集。

  3. 输出物管理

    maven可以管理项目构建的产物,并将其加入到用户库中。这个功能可以用于项目组和其他部门之间的交付行为。

  4. 依赖关系

    maven对依赖关系的特性进行细致的分析和划分,避免开发过程中的依赖混乱和相互污染行为

  5. 文档和构建结果

    maven的site命令支持各种文档信息的发布,包括构建过程的各种输出,javadoc,产品文档等。

  6. 项目关系

    一个大型的项目通常有几个小项目或者模块组成,用maven可以很方便地管理

  7. 移植性管理

    maven可以针对不同的开发场景,输出不同种类的输出结果。