在Maven中排除依赖的主要步骤是:
- 在依赖元素中使用子元素:
<dependency>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
<exclusions>
<exclusion>
<groupId>...</groupId>
<artifactId>...</artifactId>
</exclusion>
</exclusions>
</dependency>
- 在元素中指定要排除的依赖的坐标。
- Maven在解析依赖 transitively时,会排除指定的依赖。
Maven中排除依赖的主要作用是:
- 排除不需要的传递依赖,使 dependency 的集合更加精简。
- 防止依赖版本冲突。低层依赖如果引入了较高版本,可以排除 forced 使用较低版本。
- 减小项目大小,只引入真正需要的依赖。
来看一个简单示例:
我们的项目依赖A,A依赖B和C:
[项目] -> [A] -> [B, C]
如果我们只想引入A和C,不需要B,可以在pom.xml中配置:
<dependency>
<groupId>A</groupId>
<artifactId>A</artifactId>
<version>1.0</version>
<exclusions>
<exclusion>
<groupId>B</groupId>
<artifactId>B</artifactId>
</exclusion>
</exclusions>
</dependency>
最终项目的依赖关系变为:
[项目] -> [A] -> [C]
B被成功排除。
所以,通过依赖排除可以精简项目依赖,避免不需要的传递依赖。