maven是跨平台的项目管理工具。标准化构建过程
maven主要服务于基于Java平台的项目构建、依赖管理和项目信息管理
maven不仅能自动化构建还能够抽象构建过程(抽象了一个完整的生命周期模型),提供构建任务实现、
构建:清理、编译、运行单元测试、生成文档、打包和部署
依赖管理:通过坐标准确定位每一个构件(artifact),通过坐标,maven能够找到任何一个Java类库
项目信息管理:管理项目描述、开发者列表、版本控制系统地址、许可证、缺陷管理系统地址,通过maven自动生成的站点可以获得项目文档、测试报告、静态分析报告、源码版本日志报告
优点:
maven提供了免费的中央仓库,在其中几乎可以找到任何的流行开源类库。
通过maven的衍生工具Nexus,可以对仓库进行快速搜索
maven对于项目目录结构、测试用例命名方法等内容有既定的规则,只要遵循了这些成熟的规则,用户在项目切换的时候,就免去了额外的学习成本
简洁的操作接口、测试驱动开发、持续集成、富有信息的工作区
IDE、ANT、maven对比:
IDE:依赖大量手工操作、很难再项目中统一所有的IDE配置
Make(名为Makefile的脚本文件驱动):可以利用所有系统的本地命令,难以跨平台,过程式的
Ant:过程式的,针对每一个项目,开发者都需要重新编写这一过程,ant没有依赖管理,现在ant可以借助lvy管理依赖
Maven :声明式的,构建过程和过程的各个阶段所需的工作都由插件实现,大部分插件都是现成的,开发者只需要声明项目的基本元素,maven就执行内置的、完整的构建过程