一.Maven概念与特点
1.1什么是Maven
我的总结
Maven是一个基于Java开发的软件,核心功能是快速创建项目和管理依赖(自动下载jar)。可以简化与快速地完成项目构建。
1.2Maven的特点
1.2.1简化构建项目过程
以前构造项目都是从网站上下载.jar包,然后挑一些能用到的,放入我们的项目的文件夹下。并且如果各个框架下有不同的jar包的时候,会产生jar包冲突,导致项目跑不起来了,非常的麻烦。
而Maven帮我们解决了jar包的冲突,帮我们做统一的版本控制,我们只用引入一个依赖,就可以把一大堆我们想要的包引入进来了,可以简化构建项目的过程。
1.2.2 提供统一的构建系统
maven有自己的生命周期,可以快速地构建我们的项目(编译,测试,打包,报告,发布)。
1.2.3提供高质量的项目信息
可以帮我们运行测试程序,生产测试报告等
二.Maven工程结构说明

三.概念模型


🔹 最左边:pom.xml
这是 Maven 项目的核心配置文件,所有的项目信息、依赖、构建规则都写在这里。
- 它定义了项目的坐标(
groupId、artifactId、version),就像项目的 "身份证"。 - 项目对象模型(POM)就是以这个文件为基础,描述整个项目的结构和配置。
🔹 最上层核心模块(Maven 的三大核心机制)
-
项目对象模型(POM)
- 这是 Maven 的基础,它把项目当成一个对象来管理,
pom.xml就是这个对象的描述文件。 - 里面包含了项目名称、版本、依赖、插件等所有信息,Maven 靠它来识别和构建项目。
- 这是 Maven 的基础,它把项目当成一个对象来管理,
-
依赖管理模型(Dependency)
- 负责管理项目需要的所有 jar 包(比如你用的 Druid、MySQL 驱动)。
- 当你在
pom.xml里声明一个依赖时,Maven 会自动从下面的 "仓库" 中下载对应的 jar 包,以及它依赖的其他 jar 包。
-
构建生命周期与阶段(Build lifecycle & phases)
- Maven 定义了一套标准的构建流程,比如
clean→compile→test→package→install,每个步骤都是一个 "阶段"。 - 执行
mvn package时,Maven 会自动按顺序执行前面所有阶段(编译、测试等),最终生成打包产物。
- Maven 定义了一套标准的构建流程,比如
🔹 中间层:插件(Plug-in)
Maven 的核心本身只定义了构建生命周期,而具体的编译、测试、打包等工作,都是由插件来完成的。
- 每个插件对应一个或多个构建阶段,比如:
maven-compiler-plugin:负责编译.java文件到.class。maven-surefire-plugin:负责执行 JUnit 测试用例。maven-jar-plugin:负责打包成 jar 包。
- 图里的
mojo是插件里的最小执行单元,每个插件由多个mojo组成,每个mojo对应一个具体的任务。

🔹 最右边:仓库(Repository)
这是 Maven 存放 jar 包的地方,分为三类:
- Central(中央仓库):Maven 官方维护的全球公共仓库,包含了绝大多数开源 jar 包。
- b2b(第三方仓库):比如公司内部的私有仓库,或者阿里云等国内镜像仓库。
- Local(本地仓库):你电脑本地的仓库,下载过的 jar 包会存在这里,下次就不用重复下载了。
🔹 最下面:构建产物
Maven 构建流程会从 "源文件"(比如你的 .java 代码、.properties 配置)开始,经过插件处理,最终生成:
- 中间文件:编译后的
.class文件。 - 资源文件:打包后的配置文件。
- 二进制产物:可执行的 jar/war 包。
- 打包产物:最终用于部署的包。
一句话总结整个流程
你在 pom.xml 里定义好项目(POM)和依赖,Maven 会从仓库下载依赖,然后按照构建生命周期,调用不同插件完成编译、测试、打包等任务,最终生成可部署的产物。
四.GAVP坐标

4.1jar
普通的java项目
4.2war
普通的Web项目
4.3pom
父工程标签


