# 依赖的传递性

# 概念

A 依赖 B,B 依赖 C, 那么在 A 没有配置对 C 的依赖的情况下,A 里面不能直接使用 C?

# 传递的原则

在 A 依赖 B,B 依赖 C 的前提下,C 是否能够传递到 A, 取决于 B 依赖 C 时使用的依赖范围

  • B 依赖 C 时使用 compile 范围:可以传递

  • B 依赖 C 时使用 test 或 provide 范围:不能传递,所以需要这样的 jar 包时,就必须在需要的地方明确配置依赖才可以

# 使用 compile 范围依赖 Spring-core

测试方式:让 pro01-maven-java 工程依赖 spring-core

具体操作:编译 pro01-maven-java 工程目录下的 pom.xml

<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>4.0.0.RELEASE</version>
</dependency>

使用 mvn dependency:tree 命令,查看效果

image-20240208132412729