Maven
是Apache
旗下的一个开源项目,是一款用于管理和构建java项目的工具。
https://maven.apache.org/
maven作用
- 依赖管理
- 统一项目结构
- 项目构建
Maven模型
- 项目对象模型
(Project Object Model)
- 依赖管理模型
(Dependency)
- 构建生命周期/阶段
(Build lifecycle & phases)
Maven仓库
用于存储资源,管理各种jar包
仓库的本质就是一个目录(文件夹),这个目录被用来存储开发中所有依赖(就是jar包)和插件。
Maven
仓库分为:
- 本地仓库:自己计算机上的一个目录(用来存储jar包)
- 中央仓库:由Maven团队维护的全球唯一的。仓库地址:
https://repo1.maven.org/maven 2/
- 远程仓库(私服):一般由公司团队搭建的私有仓库
POM配置详解
POM (Project Object Model)
:指的是项目对象模型,用来描述当前的maven
项目。
Maven
中的坐标是资源的唯一标识 , 通过该坐标可以唯一定位资源位置。
- 使用坐标来定义项目或引入项目中需要的依赖。
Maven
坐标主要组成:
groupId
:定义当前Maven项目隶属组织名称(通常是域名反写)artifactId
:定义当前Maven项目名称(通常是模块名称)version
:定义当前项目版本号
maven仓库,搜索需要的坐标:https://mvnrepository.com/
添加maven
项目:
或使用Alt
+Insert
快捷键,在Ideal中快捷插入。
每次修改完pom文件,都需要刷新重新加载maven项目,引入新加入的坐标。
依赖传递
依赖传递可以分为:
- 直接依赖:在当前项目中通过依赖配置建立的依赖关系。
- 间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源。
projectA
依赖了projectB
。对于projectA
来说,projectB
就是直接依赖。projectB
依赖了projectC
及其他jar包。 那么此时,在projectA
中也会将projectC
的依赖传递下来。对于projectA
来说,projectC
就是间接依赖。
排除依赖
排除依赖:指主动断开依赖的资源。(被排除的资源无需指定版本)
作用范围
Maven生命周期
Maven对项目构建的生命周期划分为3套(相互独立):
clean
:清理工作。default
:核心工作。如:编译、测试、打包、安装、部署等。site
:生成报告、发布站点等。
Maven
的生命周期是抽象的,这意味着生命周期本身不做任何实际工作。在Maven的设计中,实际任务(如源码编译)都交由插件来完成。
在同一套生命周期中,我们在执行后面的生命周期时,前面的生命周期都会执行。
清理maven仓库
可能由于网络的原因,jar
包下载不完全,这些不完整的jar包都是以lastUpdated
结尾。此时,maven
不会再重新帮你下载,需要你删除这些以lastUpdated
结尾的文件,然后maven
才会再次自动下载这些jar包。
代码语言:javascript
复制
set REPOSITORY_PATH=%USER%\.m2\repository\mvn_repo
rem 正在搜索...
del /s /q %REPOSITORY_PATH%\*.lastUpdated
rem 搜索完毕
pause
参考
- day04-Maven.pdf