Maven是什么?回顾Java社区的变革

开发 后端
Maven是一套项目管理框架,但这并不是Maven的全部。本文对Maven是什么进行了一番比较详细的描述,并对Maven的价值进行了极高的评价,认为它是Java社区的一次变革。

大家应该都知道Maven是一种Java技术,是Ant的进化,并且在Java社区中引发了一场变革。Maven提供了一套软件项目管理的综合性方案.无论是编译,发布,文档还是团队协作,Maven提供了必要的抽象,它鼓励重用,并做了除了软件构建以外的许多工作.

然而,究竟Maven是什么?它就是一个工具么?

Maven是什么

Maven是一套项目管理框架,但这并不是Maven的全部.它是Maven作者能想得到的最显而易见的三句话定义.但是这个名字是个毫无意义的抽象,它并没有表达出Maven的强大功能和复杂性.太多的技术人员经常使用三四个关键词,来描述复杂的课题,并且重复的使用诸如"project management"和"enterprise software start"而没有能表达出其具体的含义.

当某人想要了解Maven是什么时,他们通常会问"到底Maven是个什么东东?”,然后他们期待着一个短小的,概述的回答,"嗯,它是一个构建工具,或者是一个脚本框架". Maven无法使用乏味的,毫无意义的单词来解释清楚.它是一个思想,标准以及软件的综合体,并且几乎不可能去提取出一个定义为一个简单的,概述性的定义.创新的思想往往很难用语言表达清楚.如果你对Maven的一个全面的,丰富的定义感兴趣的话,你可以阅读本介绍.它会首先想你提供所要遵循的概念和理论. 如果你阅读本介绍,只是为了寻找某些内容来告诉你的主管的话,你可以现在就转到第二章去了.

如果Maven不是一个"项目管理框架",那它是什么呢? 下面是一种描述:Maven是标准、存储格式以及一些软件用以管理和描述项目。它为构建、测试、部署项目定义了一个标准的生命周期。它提供了一个框架,允许遵循Maven标准的所有项目,方便的重用公用的构建逻辑。Maven项目存在的Apache软件基金会,是一个开源社区,它开发的软件工具,基于一个通用的软件对象模型(Project Object Model),也就是POM。本书重点关注Maven项目的核心部分——Maven 2,一个非常好的工具,它大大简化了软件项目的管理流程。

你可能曾经期待过一个更为浅显易懂的答案,或许你捡起这本书是因为某人曾经告诉过你Maven是一个构建工具。别担心,Maven可以做一个你要寻找的构建工具,并且很多使用Maven作为另外的构建工具的开发者们,都得到了一个很好的经过调优的构建系统。当你打算将Maven作为“另一个构建工具”的时候,以这种有限的眼光去看待Maven,就如同去说Web浏览器不过是看看超文本罢了。

Maven以及与其相关的技术,开始在Java社区产生了一种变革。

除了解决浅显易懂,以及诸如简化构建、文档、发布以及部署的流程等问题以外,Maven也带来了越来越引人注目的好处。

越来越多的项目和产品使用Maven作为他们项目管理的基础。它变得易于在项目和构建系统建立关系,并且在这个关系之上导航和做报告。Maven的标准格式允许为项目编码使用一种“Semantic Web”。Maven的规范和中央仓库为项目定义了一种全新的命名系统。使用Maven可以很容易的加入其他的依赖项,并发布你自己的组件。

那么,现在来回答当初的问题:Maven对于不同的人有不同的用途。它是一系列标准和解决问题的方式,而不仅仅只是一个软件。它是一种将一系列软件,使用统一的格式来描述,作为一个个互相依存的组件集合来处理的方式。它是个人和团体如何协作来开发软件系统的未来发展方向。一旦你理解了Maven,你就会奇怪以前没有它是怎么做的开发。

【编辑推荐】

  1. OSGi是什么:Java语言的动态模块系统
  2. 答疑解惑:什么是JDBC?
  3. iBATIS是什么?
  4. 简述JSF是什么
  5. 和我共同了解Java是什么
责任编辑:yangsai 来源: CSDN博客
相关推荐

2022-10-14 14:48:57

2022-09-07 15:08:46

人工智能物联网

2015-11-10 09:55:30

Swift调查期待

2021-07-28 14:22:57

智能手机苹果小米

2022-10-28 08:46:57

变革型领导IT

2023-05-05 16:34:26

2014-12-16 18:49:11

社区化支持

2024-07-11 16:32:13

代码Java

2019-01-03 14:31:40

NewSQL PingCAPTiDB

2017-03-21 23:29:44

DevOps运维开发

2023-10-11 08:29:54

volatileJava原子性

2015-05-07 14:52:58

2013-05-23 14:25:44

JDBC

2009-06-15 10:11:31

2009-09-16 16:35:08

OSGi是什么OSGi容器

2022-02-25 14:11:48

短网址Java算法

2015-08-26 09:24:16

Java垃圾搜集器

2021-05-27 09:30:51

Java流程控制

2024-04-26 00:31:24

Java动态链接

2012-04-16 15:14:47

web设计
点赞
收藏

51CTO技术栈公众号