博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
什么是Maven?
阅读量:5358 次
发布时间:2019-06-15

本文共 1606 字,大约阅读时间需要 5 分钟。

什么是Maven?

介绍

Maven一个意第绪语单词,意思是知识的累加器,最初是为了简化Jakarta Turbine项目中的构建过程而开始的。这个工程有几个项目组成,并且每个项目都有自己的Ant构建文件,这些文件都略有不同,当时JAR都是通过签入CVS进行管理。我们需要一种标准的方法来构建项目,明确定义项目的内容,发布项目信息的简便方法以及跨多个项目共享JAR的方法。

为了这个目录我们开发了一个工具,就是现在可用于构建和管理任何基于Java的项目工具Maven。我们希望我们已经创建了一些东西(Maven),使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 scriptlet

虽然Maven做了这些事情,正如你在上面的“什么是Maven?”一节中所读到的,这些并不是Maven所拥有的唯一功能,它的目标是完全不同的。

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

如果你决定使用Maven,并且有一个不可重组的不寻常的构建结构,你可能不得不忘记一些功能或完全使用Maven。

 

转载于:https://www.cnblogs.com/BlogNetSpace/p/9599919.html

你可能感兴趣的文章
egret3D与2D混合开发,画布尺寸不一致的问题
查看>>
浅谈性能测试
查看>>
CDH版本大数据集群下搭建的Hue详细启动步骤(图文详解)
查看>>
巧用Win+R
查看>>
Python中的greenlet包实现并发编程的入门教程
查看>>
较快的maven的settings.xml文件
查看>>
随手练——HDU 5015 矩阵快速幂
查看>>
Java变量类型,实例变量 与局部变量 静态变量
查看>>
mysql操作命令梳理(4)-中文乱码问题
查看>>
Python环境搭建(安装、验证与卸载)
查看>>
一个.NET通用JSON解析/构建类的实现(c#)
查看>>
如何辨别一个程序员的水平高低?是靠发量吗?
查看>>
linux的子进程调用exec( )系列函数
查看>>
MySQLdb & pymsql
查看>>
zju 2744 回文字符 hdu 1544
查看>>
【luogu P2298 Mzc和男家丁的游戏】 题解
查看>>
前端笔记-bom
查看>>
上海淮海中路上苹果旗舰店门口欲砸一台IMAC电脑维权
查看>>
Google透露Android Market恶意程序扫描服务
查看>>
给mysql数据库字段值拼接前缀或后缀。 concat()函数
查看>>