0%

maven依赖冲突

文章字数:440,阅读全文大约需要1分钟

maven的依赖添加并不是只添加一个依赖。添加的依赖包里如果也有依赖其他的包,则会一同被添加进来,形成依赖树。而有时这些被动添加进来的依赖并不是我们想要的版本,导致依赖冲突。

发现依赖冲突

  1. 程序运行中发生类未找到,方法未找到,版本不匹配等问题都可能是依赖冲突导致的。依赖了一个低版本的包,导致一些类和方法找不到。

  2. 可以通过maven提供的依赖树查看功能看目前依赖的是那个包,然后查看应该依赖的包,并进行对比。

解决依赖冲突

  1. 利用maven的最小依赖路径原则,在更近的路径,如本包下引入需要的依赖。

  2. 可以使用exclusions排除包中不需要的依赖

1
2
3
4
5
6
7
8
9
10
11
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
<exclusions>
<exclusion>
<artifactId>commons-logging</artifactId>
<groupId>commons-logging</groupId>
</exclusion>
</exclusions>
</dependency>