maven 的依赖解决问题

437 阅读1分钟

一、起因

  • 引入坐标会载入多个 jar 包,形成依赖传递的现象,会形成依赖上的冲突

二、现象

1、引入 spring-context 包

image.png

image.png

2、引入 springmvc 包

image.png

  • mvc和context都依赖与sprng-core一个,依赖的是5.0.8版本,一个依赖的是4.2.4版本。

三、准则

  • 在上述方案下,会自动引入 5.0 版本的 core 如果我们需要 4.2 版本的 core 需要如何实现

1、优先原则

  • 先声明了 4.2.4版本的,再生命 5.0.8 版本的,由于优先原则,所以引入的 core包是 4.2.4版本的 image.png

2、直接依赖原则

  • 单独引入一个 core 的依赖,由于直接依赖的优先级大于传递的优先级,所以会使用 4.2.4版本的 image.png

3、排除依赖

  • 直接将 5.0 版本中的 core 依赖删除 image.png

参考