Maven框架介绍

一、简介

Maven是一个犹太语单词,意思是知识的积累,最初的创建时是为了简化一个“Jakarta Turbine”项目的创建过程。它有多个项目工程,每一个工程包含自己的Ant创建文件,这些文件只有细微的不同,并且所有的jar包都提交到CVS。我们需要一个标准的方法去创建这些工程,对于这些工程的结构组织有一个清晰的定义,一个简单方式去发布项目信息和一个在各个项目间共享jar包的方法。

解决结果是一个工具,现在可以用于构建和管理任何基于Java的项目。我们希望我们创建的东西可以使开发人员日复一日的工作更加容易和帮助理解任何基于java的项目。

二、Maven的目标

Maven的首要目标是让开发者在短时间内完整得理解项目的状态。为了实现这个目标,Maven需要处理这些考虑到的问题:

  1. 使创建过程简单

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

  3. 提供高质量的项目描述信息

  4. 提供最好开发习惯的指导

  5. 允许透明的移植到新的功能

1、使创建过程简单

虽然使用Maven不排除对基础结构理解的需要,但是Maven提供了大量的细节封装。

2、提供一个统一的创建系统

Maven允许一个项目创建,通过它的项目模型(POM)和一系列插件,这些插件是所有Maven项目共享的,提供一个统一的创建系统。一旦你熟悉了一个Maven项目的创建,你自然就熟悉了所有Mavne系统的创建,这样当你在操作多个项目时节省了大量的时间。

3、提供高质量的项目描述信息

从你的POM文件和项目资源文件中,Maven提供了充足的有用的项目信息,比如Maven可以提供:

  1. 直接创建改变日志文档从源码控制中

  2. 交叉引用资源

  3. 邮件集合

  4. 依赖集合

  5. 包含覆盖范围的单元测试报告

随着Maven的改善,信息集合的提供也会改善,所有这些对于Maven用户都是透明的。

其他产品也可以提供Maven插件,使他们的一系列的项目信息和Maven提供的标准信息一起,这些都是基于POM的。

4、提交最好开发习惯的指导

Maven旨在收集当前开发的最佳实践原则,并使其易于指导该项目。

例如,单元测试的规范,执行和报告是使用Maven的正常构建周期的一部分。 使用当前单元测试最佳实践作为指导:

  1. 将测试源代码保存在单独的但并行的源代码树中

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

  3. 有测试用例设置他们的环境,不依赖于定制构建测试准备。

  4. Maven还旨在协助项目工作流程,如发布管理和问题跟踪。

  5. Maven还建议了一些关于如何布局项目目录结构的指南,以便一旦学习了布局,就可以轻松地导航任何其他使用Maven和相同默认值的项目。

5、允许透明迁移到新功能

Maven为Maven客户端提供了一种更新其安装的简单方法,以便他们可以利用对Maven本身所做的任何更改。

从第三方或Maven本身安装新的或更新的插件由于这个原因已经变得不重要。

三、对Maven的错误理解

你可能听说过以下关于Maven的一些事情:

  1. Maven是一个网站和文档工具

  2. Maven扩展Ant,让你下载依赖项

  3. Maven是一组可重用的Ant脚本

虽然Maven做这些事情,正如你可以在“什么是Maven?”部分中阅读,这些不是Maven的唯一功能,它的目标是完全不同的。

Maven鼓励最佳实践,但我们意识到,一些项目可能不符合这些理想的历史原因。 虽然Maven的设计灵活性,在某种程度上,在这些情况下和不同项目的需要,它不能满足每一种情况,而不妥协其目标的完整性。

如果你决定使用Maven,并且有一个不寻常的构建结构,你不能重组,你可能需要放弃一些特性或完全使用Maven。

赞.. 浏览 ..
...条评论

加载更多评论