Java 依赖传递(Dependency Transitivity) 是指:
当你在 Java 项目(如 Maven、Gradle)中引入一个第三方库时,这个库自身所依赖的其他库,也会被自动引入到你的项目中,而不需要你手动声明。
假设:
AA 依赖 BB 依赖 C那么:
你的项目 间接依赖
B和C
这就是依赖传递。
<dependency>
<groupId>com.example</groupId>
<artifactId>A</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>com.example</groupId>
<artifactId>B</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>com.example</groupId>
<artifactId>C</artifactId>
<version>1.0</version>
</dependency>
✅ 结果:
你的项目最终包含:
A → B → C
✅ 减少配置
✅ 避免版本冲突混乱
✅ 提高开发效率
例如:
C:1.0A 用 C:2.0Maven 会按 “最短路径 + 声明顺序” 原则选择版本。
可能会引入你根本用不到的库。
你以为只用了 A,其实悄悄用了 C。
mvn dependency:tree
输出示例:
com.example:my-app
├─ com.example:A
│ ├─ com.example:B
│ │ └─ com.example:C
<dependency>
<groupId>com.example</groupId>
<artifactId>A</artifactId>
<exclusions>
<exclusion>
<groupId>com.example</groupId>
<artifactId>B</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.example</groupId>
<artifactId>C</artifactId>
<version>2.0</version>
</dependency>
Java 依赖传递 = 你引入一个库,它依赖的库也会被自动引入
它是构建工具(Maven / Gradle)的重要特性,用得好省事,用不好踩坑。
如果你愿意,我也可以结合 Gradle 示例 或 真实框架(如 Spring Boot) 来讲。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。