Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven可以用于jar包管理,工程打包、编译、部署之类的事情Maven也可以来做。
Maven 除了以程序构建能力为特色之外,还提供 Ant 所缺少的高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目,而使用 Ant 则需要十几行。事实上,由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。
Maven这个单词来自于意第绪语,意为知识的积累,最早在Jakata Turbine项目中它开始被用来试图简化构建过程。当时有很多项目,它们的Ant build文件仅有细微的差别,而JAR文件都由CVS来维护。于是Maven创始者开始了Maven这个项目,该项目的清晰定义包括,一种很方便的发布项目信息的方式,以及一种在多个项目中共享JAR的方式。
遵循最佳实践的简单项目设置-获得新项目或模块以秒为单位启动
所有项目的一致使用-意味着没有新的开发人员进入项目的斜坡时间。
高级依赖性管理,包括自动更新、依赖闭包(也称为传递依赖)
能够轻松地同时处理多个项目
一个庞大且不断增长的库和元数据存储库,用于开箱即用,并与最大的开放源码项目进行适当安排,以便实时获得其最新版本的可用性
可扩展的,能够以Java或脚本语言轻松编写插件的能力
即时访问新功能,很少或没有额外的配置
Maven之外的依赖管理和部署的Ant任务
基于模型的构建:Maven能够基于项目的元数据将任意数量的项目构建为预定义的输出类型,例如JAR、WAR或发行版,在大多数情况下不需要执行任何脚本。
项目信息的连贯站点:使用与构建过程相同的元数据,Maven能够生成一个网站或PDF,包括您想要添加的任何文档,并添加到关于项目开发状态的标准报告中。此信息的示例可以在“项目信息”和“项目报告”子菜单下的网站左侧导航的底部看到。
发布管理和发布发布:如果没有更多的额外配置,Maven将与源代码控制系统(如Subversion或Git)集成,并基于某个标记管理项目的发布。它还可以将此发布到分发位置,供其他项目使用。Maven能够发布单独的输出,比如JAR、包含其他依赖项和文档的归档文件,或者作为源分发。
依赖性管理:Maven鼓励使用JAR和其他依赖项的中央存储库。Maven附带了一个机制,项目的客户机可以使用它从中央JAR存储库下载构建项目所需的任何JAR,就像Perl的CPAN一样。这允许Maven的用户跨项目重用JAR,并鼓励项目之间的通信,以确保向后兼容性问题得到处理。
显示全部