什么是maven?

什么是maven?

介绍

maven,意第绪语的意思是知识的积累,最初是为了简化雅加达涡轮机项目中的构建过程。有几个项目,每个项目都有自己的Ant构建文件,它们都略有不同,JAR被检入到CVS中。我们希望有一种标准的方法来构建项目,对项目的组成有一个清晰的定义,一种发布项目信息的简单方法,以及在多个项目中共享JAR的方法。
其结果是一个工具,现在可以用来构建和管理任何基于Java的项目。我们希望我们已经创建了一些东西,使Java开发人员的日常工作更容易,并且通常有助于理解任何基于Java的项目。

Maven的目标

Maven的主要目标是让开发人员在最短的时间内理解开发工作的完整状态。为了实现这一目标,Maven试图解决以下几个方面的问题:

  • 简化建造过程
  • 提供统一的建造系统
  • 提供优质项目信息
  • 提供最佳实践开发指南
  • 允许透明地迁移到新功能

简化构建过程

虽然使用maven并不能消除对底层机制的了解,但maven确实提供了很多细节保护。

提供统一的构建系统

Maven允许项目使用其项目对象模型(POM)和一组由所有使用Maven的项目共享的插件进行构建,从而提供统一的构建系统。一旦你熟悉了一个Maven项目是如何构建的,你就会自动知道所有Maven项目是如何构建的,从而在尝试浏览许多项目时节省了你大量的时间。

提供优质工程信息

Maven提供了大量有用的项目信息,这些信息部分来自POM,部分来自项目源。例如,Maven可以提供:

  • 直接从源代码管理创建的变更日志文件
  • 交叉引用源
  • 邮件列表
  • 依赖关系列表
  • 包括覆盖范围在内的单元测试报告
  • 随着Maven的改进,所提供的信息集将得到改进,所有这些对Maven的用户都是透明的。
  • 其他产品也可以提供Maven插件,允许他们的一组项目信息和Maven提供的一些标准信息一起使用,这些信息仍然基于POM。

为最佳实践开发提供指导方针

Maven的目标是为最佳实践开发收集当前的原则,并使向这个方向指导项目变得容易。
例如,单元测试的规范、执行和报告是使用maven的正常构建周期的一部分。当前的单元测试最佳实践用作指导原则:

  • 将测试源代码保存在单独但并行的源代码树中
  • 使用测试用例命名约定来定位和执行测试
  • 让测试用例设置其环境,而不是依赖于定制测试准备的构建。
  • Maven还致力于协助项目工作流程,如发布和问题管理。
  • Maven还建议了一些关于如何布局项目目录结构的指导原则,这样一旦您了解了布局,就可以轻松地导航使用Maven和相同默认值的任何其他项目。

允许透明迁移到新功能

Maven为Maven客户机更新安装提供了一种简单的方法,这样他们就可以利用对Maven本身所做的任何更改。
由于这个原因,从第三方或Maven本身安装新的或更新的插件变得微不足道。

Maven不是什么?

关于Maven,您可能听说过以下一些事情:

  • Maven是一个网站和文档工具
  • Maven扩展了Ant,允许您下载依赖项
  • maven是一组可重用的Ant脚本

当Maven做这些事情时,你可以在上面的“什么是Maven”中读到。“第节,这些并不是Maven的唯一特性,其目标也非常不同。
Maven确实鼓励最佳实践,但我们认识到,出于历史原因,某些项目可能不符合这些理想。虽然Maven的设计是灵活的,但在某种程度上,在这些情况下,以及不同项目的需求下,它不能在不损害目标完整性的情况下满足每一种情况。
如果您决定使用Maven,并且有一个不寻常的构建结构,您不能重新组织它,那么您可能必须忘记一些特性或Maven的使用。

猜你喜欢

转载自www.cnblogs.com/crelle/p/10333533.html