1.1何为Maven
maven翻译为“知识的积累”,“内行”,“专家”作为Apache组织中颇为成功的一个开源项目,Maven主要服务于基于Java平台的项目构建,依赖管理和项目信息管理1.1.1何为构建
编译,运行单元测试,生成文档,打包和部署1.1.2Maven是优秀的构建工具
- Maven是跨平台的
- 最大化地消除了构建的重复
- 抽象了构建生命周期
- 提供已实现的插件
- 标准化构建过程
1.1.3Maven不仅仅是构建工具
- 依赖管理工具
- 随着依赖的增多,版本不一致、版本冲突、以来臃肿等问题都会接踵而来。
- Maven提供了一个优秀的解决方案(坐标系统)来定位每一个构件
- 项目信息管理工具
- 项目描述、开发者列表、版本控制系统地址、许可证、缺陷管理系统地址等
- 通过Maven插件,我们能轻松获得项目文档、测试报告、静态分析代码、源码版本、日志报告等有价值的项目信息
- 约定优于配置
- Maven对项目目录结构、测试用例命名方式等内容都有既定的规则
1.2同类工具
- Make
- 强大之处在于它可以利用所有系统的本地命令,达到快速、高效
- 缺点
- 将自己和系统绑定在一起了,无法跨平台
- 语法不友好
- Ant
不是蚂蚁,而是意指“另一个整洁的工具”(Another Neat Tool),最早用来构建Tomcat
- 支持跨平台
- 使用
Xml
定义构建脚本,更加友好 - 缺点
- 针对构建的过程,每个项目都要重新编写
- 没有依赖管理
1.3Maven与极限编程
极限编程(XP)是敏捷开发方法,强调拥抱变化。
- Maven如何帮助XP团队实现一些核心价值
- 简单
- Maven暴露了一组一致、简洁的操作接口,简化构建系统的复杂度
- 交流与反馈
- 与版本控制系统结合,所有人都能执行最新的构建并快速得到反馈
- 自动生成项目报告,帮助成员了解项目的状态,促进团队的交流
- Maven无缝支持或融入到XP的实践中
- 测试驱动开发(TDD)
- TDD强调测试先行,所有产品都应由测试用例覆盖。
- 测试是Maven生命周期中最重要的组成部分之一,提供现成的插件,如
JUnit
,TestNG
- 持续集成(CI)
- CI强调的是项目以最短的周期(如15分钟)集成最新的代码。
- CI的前提是源码管理系统和构建系统
- 目前业界流行的CI服务器
Hudson
,CruiseControl
都能很好的和Maven集成,使用Maven后,持续集成会更加方便 - 富有信息的工作区
- 强调开发者能够快速方便地了解到项目的最新状态。
“只有两类计算机语言,一类语言天天被人骂,还有一类没人用。” ------C++之父
查看原文:http://yuyy.info/%e3%80%8amaven%e5%ae%9e%e6%88%98%e3%80%8b%e7%ac%94%e8%ae%b0/%e3%80%8amaven%e5%ae%9e%e6%88%98%e3%80%8b%e7%ac%94%e8%ae%b0%ef%bc%9a%e7%ac%ac%e4%b8%80%e7%ab%a0-maven%e7%ae%80%e4%bb%8b/