33.maven基础知识

一、maven基本介绍

1.maven介绍

maven是一个项目管理工具,主要作用是在项目开发阶段对java项目进行依赖管理和项目构建

依赖管理:对jar包进行管理。通过导入maven坐标,相当于将仓库中的jar包引入到当前项目

项目构建:通过maven的一个命令就可以完成项目从清理、编译、测试、报告、打包、部署整个过程。

2、maven仓库类型

(1)本地仓库

(2)远程仓库:https://mvnrepository.com/

*1)maven中央仓库

*2)maven私服(公司局域网内的仓库,需要自己搭建)

*3)其他公共远程仓库

3、maven常用命令

clean:清理

compile:编译

test:测试

package:打包

install:安装

4、maven书写规范

5、maven依赖范围

对于依赖的scope属性,里面的值可以是compile,test,provided,runtime,system。这五个值表明了这个jar包在什么情况下可以用。

compile:编译,测试,运行均可以

test:仅测试可用

runtime:编译不可用

provided:运行不可用

system:运行不可用(本地的,maven仓库之外的类库)

二、依赖传递

1、依赖传递

maven中,依赖可以传递。假如C直接依赖B,B直接依赖A,那么C间接依赖A。

2、依赖冲突

当发生不同版本冲突时,怎么解决

(1)使用maven提供的依赖调解原则

*1)第一声明者优先原则:在pom文件中定义依赖,以先声明的依赖为准

*2)路径近者优先原则:在pom文件中定义依赖,以路径近的依赖为准(如果直接在pom中定义,而不是通过间接依赖,那以直接依赖为准)

(2)排除依赖:使用exclusions标签将传递过来的依赖排除出去

(3)锁定版本:采用直接锁定版本的方法确定依赖jar包的版本,版本锁定后则不考虑依赖的声明顺序或依赖的路径,以锁定的版本为准添加到工程中(重要)

*1)在dependencyManagement标签中锁定依赖的版本

注:锁定不等于引入,真正用的时候还是需要引入的

*2)在dependencies标签中声明需要导入的maven坐标

注:导入坐标的时候不需要加version

猜你喜欢

转载自blog.csdn.net/qq_40594696/article/details/109748452