《Maven实战》笔记:第一章 Maven简介

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生命周期中最重要的组成部分之一,提供现成的插件,如JUnitTestNG
    • 持续集成(CI)
    • CI强调的是项目以最短的周期(如15分钟)集成最新的代码。
    • CI的前提是源码管理系统和构建系统
    • 目前业界流行的CI服务器HudsonCruiseControl都能很好的和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/

你可能感兴趣的:(《Maven实战》笔记:第一章 Maven简介)