Maven是一个项目管理和理解工具。Maven为开发人员提供了一个完整的创建生命周期框架。开发团队几乎可以自动化项目的打下基础设施,因为Maven使用标准目录布局和默认创建生命周期。
在多个开发团队环境的情况下,Maven可以在很短的时间内根据标准设置工作方式。由于大多数项目设置都是简单和可重复使用的,Maven可以在创建报告,检查,创建和测试自动化设置时轻松开发开发人员的生命。
Maven为开发人员提供了管理以下方法:
建造
文件
报告
依赖关系
SCMs
发布
分配
邮件列表
总而言之,Maven简化了项目创建过程的标准化。它可以无缝地处理编译,分发,文档,团队协作和其他任务。Maven增加了可重用性,并且处理大部分创建相关任务。
Maven最初旨在简化雅加达涡轮项目的建设过程。有几个项目,每个项目包含稍微不同的ANT创建文件。JAR被检查到CVS。
Apache组织然后开发了可以一起创建多个项目的Maven,发布项目信息,部署项目,在多个项目中共享JAR并帮助团队协作。
Maven的主要目标是提供开发人员
一个可重用,可维护,易于理解的项目的综合模型。
与此声明性模型交互的插件或工具。
Maven项目结构和内容在xml文件中声明,pom.xml称为项目对象模型(POM),它是整个Maven系统的基本单元。有关详细信息,请参阅Maven POM部分。
Maven使用Convention over Configuration,这意味着开发人员不需要自己创建创建过程。
开发人员不必提及每一个配置细节。Maven为项目提供合理的默认行为。当创建Maven项目时,Maven将创建默认的项目结构。开发人员只需要相应地放置文件,并且他/她不需要在pom.xml中定义任何配置。
作为示例,下表显示了项目源代码文件,资源文件和其他配置的默认值。假设$ {basedir}表示项目位置:
项目 | 默认 |
---|---|
源代码 | $ {basedir} / src / main / java |
资源 | $ {basedir} / src / main / resources |
测试 | $ {basedir} / src / test |
可分发JAR | $ {basedir} / target |
符合字节码 | $ {basedir} / target / classes |
为了创建项目,Maven为开发人员提供了提及生命周期目标和项目依赖关系的选项(依赖于Maven pluging功能和默认约定)。Maven插件维护了大量项目管理和创建相关任务。
开发人员可以创建任何给定的Maven项目,而无需了解个人插件的工作原理。有关详细信息,请参阅Maven插件部分。