百科定义
Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。
Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。
Maven是什么
估计看了上一段的文字之后,不但没有起到了解Maven的作用,反而增加了理解的难度。现在我们来具体谈谈。
作为Apache组织中的颇为成功的开源项目,Maven主要服务于基本Java平台的项目构建、依赖管理和项目信息管理。
构建工具
Maven是一个强大的构建工具,能够帮助我们自动化构建过程,从清理、编译、测试到生成报告,再到打包和部署。我们只需使用Maven配置好项目,然后输入简单命令,Maven会帮我们处理这些琐碎的任务。
依赖管理
任何Java应用都可能用到第三方的开源类库,这些类库可通过依赖的方式引入到项目中来。随着依赖的增多,版本不一致、版本冲突等问题接踵而来。Maven通过一个坐标系统准确地定位每一个构建(artifact),也就是通过一组坐标Maven能够找到任何一个Java类库。**Maven给这个类库世界引入了经纬,让它们变得有秩序,于是我们可以借助它来有序的管理以来,轻松的解决繁杂的依赖问题。
项目信息管理
Maven帮助我们管理项目信息,包括项目描述、开发者列表、版本控制系统地址、许可证等。除了直接的项目信息,通过Maven自动生成的站点,以及一些已有的插件,我们可以轻松获得项目文档、测试报告、静态分析报告、源码版本日志报告等非常有价值的项目信息。
Maven对于项目目录结构、测试用例命名方式等内容都有既定的规则,用户在项目间切换的时候免去了额外的学习成本。
IDE的不足
IDE依赖大量的手工操作。编译、测试、代码生成等工作都是相互独立的,很难一键完成所有工作。
很难在项目中统一所有的IDE配置,每个人都有自己的喜好。
我们可以通过在IDE中使用集成的Maven来执行构建过程。
转载请注明作者Jason Ding及其出处
Github主页(http://jasonding1354.github.io/)
CSDN博客(http://blog.csdn.net/jasonding1354)
简书主页(http://www.jianshu.com/users/2bd9b48f6ea8/latest_articles)