Maven工具的使用
Maven的下载,maven的目录结构以及Idea整合maven
IDEA默认集成了maven
maven下载
maven官网链接: maven官网
maven的目录结构
bin目录存放的是可执行文件,命令在IDEA中可以直接集成Maven
boot目录存放的是maven启动时候需要的jar包
conf目录存放的是maven的配置,核心配置文件settings.xml
配置maven的环境变量
配置完成以后使用 mvn -v命令查看
出现版本号证明配置成功
maven配置文件的使用
仓库的配置
jdk的配置
自己在IDEA中指定使用的maven
maven仓库
maven仓库分为:远程仓库和本地仓库
可以理解成:不在本地的仓库都是远程的仓库
maven仓库值之远程仓库
链接: maven中央仓库链接.
镜像仓库
如果仓库A可以提供存储仓库B的所有内容,那么这个时候就可以认为A仓库是B仓库的一个 镜像。
仓库的优先级问题
先到本地仓库去找----》没有配置镜像仓库—》中央仓库
先到本地仓库去找----》配置了镜像仓库-----》中央仓库
Maven工程类型
maven中的工程有三个
- POM工程
POM工程是一个逻辑工程,用在父级工程或者聚合工程中,用来做jar包的控制版本 - JAR工程
打成jar包 - WAR工程
打成war包,发布在服务器上的工程
创建一个maven工程
step1:
step2:
step3
step4:
step5:
Maven工程目录结构
如何查找项目中的jar包在本地的位置
工程关系
maven工具是基于pom(project Object Model 项目对象模型),模式实现的。在maven中每一个项目都相当于一个对象,对象(项目)和对象(项目)之间是存在关系的:包括依赖,继承,聚合,实现Maven项目可以更加方便的实现倒jar包,项目拆分。
依赖关系
A工程的运行需要B工程的支持,这就是一种依赖关系即 A依赖B
如何注入依赖?
在pom文件dependencies标签中,配置依赖信息,其中dependencies可以包含多个dependency元素。这个就可以注入依赖
完美解决jar包冲突问题
依赖关系的传递特性
依赖的两个原则以及依赖排除
原则1:最短路径优先原则
原则2:最先声明原则
依赖排除:
依赖范围
compile:编译和运行时生效
provided:maven依赖的范围内有效
runtime:运行时有效
system:和provided类似,但是需要systemPath这个标签指定系统的路径
test:在代码编译测试的时候内有效
import:import范围适用于pom文件中的dependencyManagement部分。表明指定的POM必须使用dependencyManagement范围的依赖
在子工程使用父工程相关的jar
继承关系
实际上就是POM文件的继承,