Maven 2 概览
Maven 是一个顶级的 Apache Software Foundation 开源项目,创建它最初是为了管理 Jakarta Turbine 项目复杂的构建过程。从那以后,不论是开源开发项目还是私有开发项目都选择 Maven 作为项目构建系统。Maven 快速地发展着,如今已是第二版,Maven 已经从针对单个复杂项目的定制构建工具成长为广泛使用的构建管理系统,其丰富的功能可以应用于大多数的软件开发场景。
概括来讲,Maven 2 能够:
* 理解项目通常是如何构建的。
* 利用其内嵌的项目知识简化和便利项目构建。
* 利用其内嵌的项目知识来帮助用户理解复杂的项目结构和构建过程中潜在的变数。
* 设计并实现一个经证实的依赖项管理系统,该系统顺应了当今全球化和相互联系的项目团队的需求。
* 利用其内部知识,针对简单项目提供简单的用户体验。
* 对于高级用户来说相当灵活;针对特别的应用场景,可以覆盖其内嵌模型,也可以通过配置、部署元数据或创建自定义插件对其内嵌模型进行改写。
* 全面扩展现有行为之外的场景细节。
* 捕获新出现的最佳实践和各个用户社区间的经确认的共同性,并将它们纳入到 Maven 的内嵌项目知识中,从而不断地得到改进。
Maven 2 —— 概念性的概览
为捕捉项目构建知识,Maven 2 依赖于一套发展中的有关事物如何运转的概念性模型。部分模型被硬编码为 Maven 代码库的一部分,这些模型通过新的 Maven 发布版本不断得到精炼。图 1 解释了 Maven 2 的关键模型:
图 1. Maven 2 对象和操作模型
图 1 中的关键组件为:
*
项目对象模型(POM): POM 是 Maven 2 中的里程碑式的模型。该模型的一部分已经构建到 Maven 引擎(被亲切地称为反应堆 )中,其余部分则通过一个名叫 pom.xml 的基于 XML 的元数据文件来声明。
*
依赖项管理模型: Maven 对如何管理项目的依赖项很在行。依赖项管理是一片灰色地带,典型的构建-管理工具和系统都未明确涉及。Maven 2 构建了 Maven 依赖项管理模型,该模型能够适应大多数需求。这个模型被证明是有效而高产的模型,目前,主要的开源项目都部署了该模型。
*
构建生命周期和阶段:和 POM 相关的概念是构建生命周期 和阶段。这是 Maven 2 的内嵌概念模型和现实物理世界之间的接口。使用 Maven 时,工作主要是通过插件来执行的。在构建周期中,Maven 2 通过遵循一系列定义好的阶段,将这些插件协调起来。
Maven 2 —— 物理概览
图 2 揭示了 Maven 2 的操作方式和与之交互的方式,同时显示了它的物理构成。图 2 提供了有关如何与 Maven 进行交互的概览:
图 2. Maven 2 操作和交互模型
图 2 中,POM 是 Maven 对您的特定项目的理解。这个模型由包含在一系列 pom.xml 文件中的声明性描述构成。这些 pom.xml 文件构成一棵树,每个文件能从其父文件中继承属性。Maven 2 提供一个 Super POM。这个 Super POM 位于层级树的顶端,它包含所有项目的默认通用属性;每个项目的 POM 都从这个 Super POM 处继承。
依赖项被指定为 pom.xml 文件的一部分。Maven 根据其依赖项管理模型解析项目依赖项。Maven 2 在本地存储库和全球存储库寻找依赖性组件(在 Maven 术语里称作工件 )。在远程存储库中解析的工件被下载到本地存储库中,以便使接下来的访问可以有效进行。Maven 2 中的这个依赖项解析器可以处理可递 依赖项。即,它能有效地解析您的依赖项所依赖的那些依赖项。
Maven 引擎通过插件 亲自执行几乎所有的文件处理任务。插件被配置和描述在 pom.xml 文件中。依赖项管理系统将插件当作工件来处理,并根据构建任务的需要来下载插件。每个插件都能和生命周期中的不同阶段联系起来。Maven 引擎有一个状态机,它运行在生命周期的各个阶段,在必要的时候调用插件。
- 大小: 30 KB
- 大小: 20.6 KB
分享到:
相关推荐
### Maven 2 概览 Maven 2的核心功能在于它的项目对象模型(Project Object Model,简称POM)。POM是一个XML文件,包含了项目的基本信息、依赖关系、构建过程和其他配置细节。Maven使用POM来理解项目的构建过程,并...
**Maven 2 概览** Maven 2 的设计理念是理解项目的一般构建方式,并通过内置的项目知识简化构建过程。它内含的依赖管理系统能够处理项目之间的依赖关系,确保正确版本的库被用于构建。此外,Maven 2 提供了一个标准...
1. **Maven 2 概览**:Maven最初是为了管理Jakarta Turbine项目而创建的,后来演变为广泛应用的构建管理系统。它理解项目的构建方式,内建项目知识,并提供了依赖项管理,以适应全球化和相互联系的项目团队需求。 2...
### Maven2 学习手册概览 Maven2作为开源项目的构建工具,相较于其前身Maven1,在功能和性能上进行了显著的优化和扩展。它不仅提升了构建速度,还简化了配置过程,引入了生命周期的概念,并增强了依赖管理,使之...
#### Maven概览 Maven是一个软件项目管理工具,由Apache Software Foundation维护。它通过一系列抽象的概念帮助开发者管理构建过程、依赖关系和其他与项目相关的任务。Maven的目标是简化这些过程,使开发者能够更...
Maven3_01_maven概览 Maven3_02_maven安装的注意事项 Maven3_03_在eclipse中建立简单的项目 Maven3_04_maven的依赖特性 Maven3_05_maven的聚合和继承 Maven3_06_复习maven的基本内容 Maven3_07_nexus的介绍和安装 ...
#### Maven3.5至3.6.3版本概览 Maven 3.x系列是当前Maven的主要版本分支,其中3.5到3.6.3这几个版本主要集中在性能优化、错误修复及新功能添加等方面。这些版本之间的差异虽然不大,但每个版本都有其独特的改进点。 ...
### MAVEN2实用指南知识点概览 #### 一、前言 - **目的与背景**:作者希望通过分享自己的学习经验和实战技巧,帮助那些对Maven有一定了解但仍处于入门阶段的学习者快速掌握Maven的核心功能。文章特别强调了文档的...
#### 一、Maven概览 Maven是一个项目管理和综合工具,主要用于Java项目。它的设计理念是“约定优于配置”,即通过预设的规则和标准来减少配置工作量,使开发者能够更加专注于业务逻辑而不是构建过程。 **1.1 Maven...
### Maven - Maven 教程概览 #### 一、Apache Maven —— 概述 **1.1 什么是 Maven** Apache Maven 是一个基于项目对象模型(Project Object Model, POM)的软件项目管理和理解工具。它能够从一个中央信息源管理...
**Maven快速培训PPT概览** Maven是一个在Java开发领域广泛应用的项目管理和构建工具。它的核心功能包括项目对象模型(Project Object Model)、依赖管理、项目生命周期和插件等,旨在简化项目的构建过程,提高开发...
### Maven 完整参考知识点概览 #### 一、引言与 Maven 概念 **1.1 Maven 是什么?** Maven 是一个项目管理和理解工具。它包含了一个项目对象模型(POM),一组标准集合,一个项目生命周期,一个依赖管理系统以及其他...
### Maven权威指南中文版知识点概览 #### 一、引言与Maven概念 - **Maven概述**:Maven是一种项目管理和理解工具,旨在通过一套标准流程来简化项目的构建过程。 - **约定优于配置(Convention Over Configuration)...
### Maven权威指南中文版知识点概览 #### 一、Maven概述 **1.1 Maven是什么?** Maven被广泛认为是一种项目管理和构建自动化工具,主要用于Java项目的开发。Maven的核心价值在于它不仅是一个简单的构建工具,如Ant...
### Maven Definitive Guide知识点概览 #### 一、引言 《Maven Definitive Guide》是一本全面介绍Apache Maven构建工具的书籍,由Tim O'Brien、John Casey、Brian Fox、Bruce Snyder、Jason Van Zyl及Eric Redmond...