Maven
是Apache
旗下的一个开源项目,是一款用于管理和构建java项目的工具。
(Project Object Model)
(Dependency)
(Build lifecycle & phases)
用于存储资源,管理各种jar包
仓库的本质就是一个目录(文件夹),这个目录被用来存储开发中所有依赖(就是jar包)和插件。
Maven
仓库分为:
https://repo1.maven.org/maven 2/
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对项目构建的生命周期划分为3套(相互独立):
clean
:清理工作。default
:核心工作。如:编译、测试、打包、安装、部署等。site
:生成报告、发布站点等。
Maven
的生命周期是抽象的,这意味着生命周期本身不做任何实际工作。在Maven的设计中,实际任务(如源码编译)都交由插件来完成。
在同一套生命周期中,我们在执行后面的生命周期时,前面的生命周期都会执行。
可能由于网络的原因,jar
包下载不完全,这些不完整的jar包都是以lastUpdated
结尾。此时,maven
不会再重新帮你下载,需要你删除这些以lastUpdated
结尾的文件,然后maven
才会再次自动下载这些jar包。
set REPOSITORY_PATH=%USER%\.m2\repository\mvn_repo
rem 正在搜索...
del /s /q %REPOSITORY_PATH%\*.lastUpdated
rem 搜索完毕
pause