我们为什么要使用依赖?
在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 |
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。