学习笔记:maven依赖配置与依赖传递
作者:互联网
我们为什么要使用依赖?
在dependencies中配置依赖,有了依赖我们的项目就能使用别人的资源而不用拷贝jar包
<!--配置junit依赖-->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
1. 依赖的四种类型
1.依赖传递: 每个项目中的pom文件里都有其坐标,直接复制粘贴到dependencies里面就可以使用别人的依赖了。
分为直接依赖;间接依赖
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.itheima</groupId>
<artifactId>java02</artifactId>
<version>1.0-SNAPSHOT</version>
<dependency>
</dependencies>
2.依赖传递冲突问题:
路径优先:版本的不同,层级越浅优先级越高
声明优先:配置顺序靠前的优先级高
特殊优先:同级配置的相同资源,后配置的优先级高
3.可选依赖:
optional ture,即可让他人看不到此依赖。
<optional>true</optional>
4.排除依赖:
主动不用这个依赖
<exclusions>
<exclusion>
<groupId>com.itheima</groupId>
<artifactId>java02</artifactId>
<version>1.0-SNAPSHOT</version>//不用写version
</exclusion>
</exclusions>
2. 依赖管理
1. 依赖范围:
<scope>xxx</scope>//不同的xxx对应不同的作用范围
scope | 主代码 | 测试代码 | 打包 | 范例 |
---|---|---|---|---|
compile(默认) | Y | Y | Y | log4j |
test | Y | junit | ||
provided | Y | Y | servlet-api | |
runtime | Y | jdbc |
传递性:看不懂没关系。
带有依赖范围进行传递依赖时,作用范围将受到影响。横轴是直接传递,纵轴是间接传递。
compile | test | provided | runtime | |
---|---|---|---|---|
compile | compile | test | provided | runtime |
test | ||||
provided | ||||
runtime | runtime | test | provided | jdbc |
标签:传递,依赖,优先级,配置,笔记,maven,4.12,junit 来源: https://blog.csdn.net/weixin_44917369/article/details/121086144