Apache Maven是一个软件项目管理和综合工具。基于项目对象模型(POM)的概念,
Maven
可以从一个中心资料片管理项目构建,报告和文件。
计算机领域,
Maven是一个跨平台的项目管理工具。Apache组织下一个开源项目。
主要服务于Java平台项目构建、依赖管理、项目信息管理。
Maven是声明式的,项目构建过程和过程各个阶段所需的工作都由插件实现,并且大部分插件都是现成的,开发者只需要声明项目的基本元素,Maven就执行内置的、完整的构建过程。消除大部分重复工作。
构建工具比较:
1.IDE:依赖大量手工操作,编译、测试、代码生成、等工作都是相互独立的,很难一键完成,效率低,易出错。 项目中难以统一所以IDE配置,每个程序员的喜好不一样,导致配置不一样。
2.《Make:难以跨平台。将操作系统绑定在一起。
3.Ant:跨平台,但是过程式,有重复性工作。没有依赖管理,需要手动管理依赖。
4.Maven是声明式的,内置依赖管理。拥有自己的仓库中心。
极限编程(XP)是目前较为流行的敏捷开发方法,它强调拥抱变化。
通过使用Maven,可以帮助XP团队实现一些XP的核心价值。
- 简单 Maven暴露了一组一致、简洁的操作接口,能够简化构建系统的复杂度。
- 交流与反馈 与版本控制系统结合后,所有开发人员都能够执行最新的构建并快速得到反馈。
- 测试驱动开发(TDD)
TDD强调测试先行,所有产品都应该由测试用例覆盖。测试是Maven生命周期的最重要的组成部分之一,并且Mavan能够很好的支持业界流行的测试框架,如Junit和TestNG
- 十分钟构建
十分钟构建强调我们能够随时快速地从源码构建出最终的产品,对于Maven来说,只需要一些配置,一条简单的命令就可以轻松的得到最终的产品。
- 持续集成(CI)
CI强调项目以很短的周期(如15分钟)集成最新的代码。实际上,CI的前提是源码管理系统和构建系统。目前业界流行的CI服务器如Hudson和CruiseControl都能很好地和Maven进行集成。
- 富有信息的工作区
这条实践强调开发者能够快速方便地了解到项目的最新状态。使用Maven发布的项目报告站点,并配置需要的项目报告,如测试覆盖率报告,能够把消息推送到开发人员眼前。