Maven依赖排除是否会移除传递依赖的传递依赖?
依赖排除是否会移除传递依赖的传递依赖?
结论
会,Maven的依赖排除规则会作用于目标依赖整个依赖树中的所有对应构件,无论它处于传递依赖的哪一层级。
针对你的场景分析
先看你的pom配置:
<dependency> <groupId>eg1</groupId> <artifactId>ea1</artifactId> <version>1</version> </dependency> <dependency> <groupId>g1</groupId> <artifactId>a1</artifactId> <version>1.2.3</version> <exclusions> ... <exclusion> <groupId>eg1</groupId> <artifactId>ea1</artifactId> </exclusion> </dependency>
对应的依赖层级:
>> a1 (dependency) >> >> ea1 (transitive dependency of a1 with version 1) >> >> a2 (transitive dependency of a1) >> >> >> ea1 (transitive dependency of a2 with version 2)
你对a1配置的eg1:ea1排除,会移除a1依赖树里所有的ea1实例:
- 直接移除
a1自身的传递依赖ea1:1 - 同时也会移除
a1的传递依赖a2所带的ea1:2
需要注意:你pom中直接声明的eg1:ea1:1不会被这个排除影响,因为排除规则仅作用于a1及其下属的传递依赖链。
内容的提问来源于stack exchange,提问作者Mkl Rjv
相关产品推荐
相关产品推荐

