介绍:
Maven是Apache公司发行的,一个Java项目管理和构建工具
作用:
1.方便的依赖管理
2.统一的项目结构
3.标准的项目构建流程
模型:
![](https://file.jishuzhan.net/article/1795038232413474817/a3dea1dd3bf33eb147e1863aadf9d1c4.webp)
Maven通过项目对象模型(POM)和依赖管理模型(Dependency)管理依赖(jar包),如果新添加的依赖,那么Maven会先在本地仓库中(自己计算机上的一个目录)查找是否有该依赖,如果没有,那么会在远程仓库(私服)(一般由公司团队搭建的私有仓库)中查找,如果也没有,那么会到中央仓库(由Maven团队维护的,全球唯一的,基本包含全球发布的所有依赖。仓库地址:Central Repository: (maven.org))中查找,查找到又会逐个往回传输下载。
依赖管理:
依赖配置:
![](https://file.jishuzhan.net/article/1795038232413474817/04a0bec4b255aacf222945301fea5f59.webp)
如果引入的依赖,在本地仓库不存在,将会连接远程仓库/中央仓库,然后下载依赖。
如果不知道依赖的坐标信息,可以到Maven Repository: Search/Browse/Explore (mvnrepository.com)中搜索。
依赖传递:
![](https://file.jishuzhan.net/article/1795038232413474817/34a712fe452e8d48642ebe3d5ae58758.webp)
排除依赖代码:
XML
<dependency>
<groupId>com.han</groupId>
<artifactId>maven-projectB</artifactId>
<version>1.0-SNAPSHOT</version>
<!--排除依赖-->
<exclusions>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
排除依赖文件maven-projectB的其他依赖
依赖范围:
![](https://file.jishuzhan.net/article/1795038232413474817/3a330c62dd3cbd4e9fe421d9776d68a3.webp)
生命周期:
![](https://file.jishuzhan.net/article/1795038232413474817/c2978f44c8d40f85f408e5283a9191c7.webp)
![](https://file.jishuzhan.net/article/1795038232413474817/cdd40729e7f1f0d8161c4fc85b7cbcee.webp)
常见的生命周期阶段:
![](https://file.jishuzhan.net/article/1795038232413474817/ab386ac2469ec01a2ec7304b61c2fc6f.webp)