Apache Maven:一款开源软件项目管理工具

1,507 阅读3分钟
原文链接: hao.jobbole.com

Apache Maven是一个软件项目管理工具。基于项目对象模型(POM)的理念,通过一段核心描述信息来管理项目构建、报告和文档信息。

查看图片

Maven是一个意第绪语(犹太人使用的国际语)单词,意思是知识的累加器。它最开始是被用来简化Jakarta Turbine项目的构建过程。在Jakarta Turbine项目中有几个不同的项目,虽然它们的Ant构建文件差异很小,但是Jar包都在CVS上。于是想要找到一个标准而又简单的项目构建方法,既可以清晰地定义出这个项目由什么构成并发布项目信息,又能在不同项目间共享Jar包。

现在,任何一个基于Java的项目都能使用Maven来构建和管理了。我们希望我们所做的能使Java开发人员的日常工作变得更轻松并让Java项目更容易被理解。

主要特性

  • 遵循最佳实践指导的简单项目安装过程:可以在短时间内构建出一个新项目。
  • 通过方法的一致性使得新的开发人员加入一个项目时不会更加耗时。
  • 优秀的依赖管理功能—自动更新、闭包依赖(也就是传递依赖)。
  • 能同时适用于多个项目。
  • 不断增加大量类库和元数据,提供更多最新版本的开源项目可供使用。
  • 可扩展:能使用Java或脚本语言编写插件。
  • 仅需极少甚至无需配置即可获得新特性。
  • 支持Maven之外的依赖管理和部署的Ant任务。
  • 基于Model的构建:在大多数情况下,Maven能将项目的任一成员构建成预定义的输出类型,如Jar包、War包或者是基于项目元数据的版本而无需任何脚本控制。
  • 项目信息的一致性:如果构建过程中使用相同的元数据,Maven就能够按照你想添加的信息生成一个网站或者PDF文档,并将其添加到项目开发状态的标准报告中去。
  • 版本发布和管理:无需太多配置,Maven会和你的源代码控制系统如CVS集成,基于一个特定的标签它将管理一个项目的发布工作。Maven能发布独立的输出内容,比如一个Jar包、一个包含其它依赖和文档或者是一个源代码分发版本。
  • 依赖管理:Maven鼓励使用一个集中的Jar包和其它依赖资源库。你可以在项目中从这个中央资源库随时下载任何一个构建时所需要的Jar包,这种机制与Perl的CPAN很像。这使得Maven的用户能在不同的项目间共享Jar包,同时这也鼓励了项目间的相互交流,从而使得Jar包的向下兼容性问题得以处理。

开发资源

官方网站:maven.apache.org/
开源地址:git-wip-us.apache.org/repos/asf/m…