什么是Maven

先来说说这个单词吧.好像这个单词还有很多故事.一般就是说一个在某个领域比较牛逼的人,专家高手.

Apache Maven是一个让人理解起来容易的软件工程管理工具.它是基于工程对象模型的概念产生的.它能够从一小段信息来管理工程的build,报告,还有文档.

Maven,它是一个Yiddish词汇,意味知识的积累,它源于Jakarta Turbine项目,目的是为了能够简化工程的构建过程.当时有很多的工程,他们都有自己的ant build文件,他们都是有点细微的差别,而jar文件都由cvs在维护,他们希望能够有一个标准的方法来构建工程.能够很简洁的定义工程的组成,能够简单得来发布工程信息,能够在很多的工程间共享jar文件.

结果就是有了这么一个工具,他能够用来构建和管理基于java开发的项目.开发这个工具的人希望这个工具能够让那些每天从事java开发工作的开发人员感觉到轻松并且能够对于项目的认识有一个直观的帮助.

Maven的目标:

Maven的主要目的就是能够让程序员在一个比较短的时间内认识并理解开发周期内不同状态.为了能够实现这个目的,Maven主要关注以下几个领域:

1.让构建比较容易

2.提供一个统一的构建系统

3.提供工程质量信息

4.提供最佳开发实践的指导

5.轻松升级

1.让构建比较容易

很多底层的细节Maven已经给你封装好了,不用在操心

2.提供一个统一的构建系统

Maven用POM来构建一个工程,有很多的插件供你使用,提供一个统一的构建系统,一旦你熟悉了你熟悉了一个通过Maven构建的工程之后,就能够很轻松得用在别的工程上.

3.提供工程质量信息

Maven 提供了很多的有用的信息,有来自于POM的.也有来自你的源代码的,例如,它可以提供这些:

1.来源于版本控制的change log文档.

2.代码间的引用.

3.邮件

4.依赖关系

5.单元测试报告

随着这些信息的改进,用户能够清楚的知道,其他的工具同样能够提供Maven的插件,他们的一些基本POM的信息同样能够为Maven所用.

4.提供最佳开发实践的指导

Maven目标就是能够收集并整理开发的最佳实践,能够直接的指导开发,能够让开发变得更加简单.例如,单元测试的规范,执行和报告是正常使用Maven构建周期的一部分。当前的单元测试的最佳实践就是:

1.保持您的测试源代码,在一个单独的,平行的源代码树里

2.使用命名约定来定位和执行测试

3.由测试用例设置他们的环境,不依赖于自定义的测试准备。

Maven也旨在协助项目工作流程,发布管理和问题跟踪等。

Maven也提出了如何布局项目的目录结构,所以一旦你学会布局,您可以轻松地理解任何其他使用Maven的项目和相同的默认设置。

5.轻松升级

Maven的客户端更新是很方便的,这样他们就能够使用最新最强大的功能.