Maven是意第绪语中的一个词,意思是知识的积累者,最初是为了简化雅加达涡轮机项目中的构建过程。有几个项目,每个项目都有自己的Ant构建文件,它们都略有不同。罐子被检查进CVS。一种发布项目信息的简单方法和一种在几个项目间共享jar的方法。
Maven的主要目标是让开发人员在最短的时间内理解开发工作的完整状态。为了实现这一目标,app试图解决几个方面的问题:
使构建过程变得简单

提供统一的构建系统
提供高质量的项目信息

为最佳实践开发提供指南
允许透明迁移到新功能
它提供了大量有用的项目信息,这些信息一部分来自您的POM,一部分来自您的项目资源。例如,它可以提供:
直接从源代码管理创建的更改日志文档
交叉引用的来源
项目管理的邮件列表列表
依赖列表
包括覆盖率的单元测试报告
特色和亮点
遵循最佳实践的简单项目设置-在几秒钟内启动一个新项目或模块
在所有项目中使用一致——意味着新开发人员没有进入项目的准备时间
高级依赖管理,包括自动更新、依赖闭包(也称为传递依赖)
能够同时轻松处理多个项目
一个庞大且不断增长的库和元数据存储库,可随时使用,并与最大的开源项目达成协议,可实时获得其最新版本
可扩展,能够轻松地用Java或脚本语言编写插件
只需很少或不需要额外配置即可即时访问新功能
应用程序外部的依赖关系管理和部署的Ant任务
基于模型的构建:Maven能够将任意数量的项目构建成预定义的输出类型,比如基于项目元数据的JAR、WAR或发行版,在大多数情况下不需要编写任何脚本。
一致的项目信息站点:使用与构建过程相同的元数据,Apache Maven能够生成一个web站点或PDF,其中包含您想要添加的任何文档,并添加到关于项目开发状态的标准报告中。此类信息的示例可在本网站左侧导航栏的“项目信息”和“项目报告”子菜单下找到。
发布管理和分发发布:无需太多额外的配置,它将与您的源代码控制系统(如Subversion或Git)集成,并基于某个标签管理项目的发布。它还可以将其发布到一个分发位置,供其他项目使用。该应用程序能够发布单独的输出,如JAR、包括其他依赖项和文档的档案,或作为源代码分发。
依赖性管理:它鼓励使用jar和其他依赖性的中央存储库。它提供了一种机制,项目的客户可以使用这种机制从一个中央JAR库中下载构建项目所需的任何JAR,就像Perl的CPAN一样。这允许Maven的用户跨项目重用jar,并鼓励项目之间的通信,以确保向后兼容性问题得到处理。