排除Maven传递依赖

Maven会根据Jar依赖,自动引入需要的Jar。但有时这种传递依赖会造成Jar版本冲突。例如:引入proxool0.9.1的数据连接池jar,会自动引入servlet-api2.3.jar。但版本过低会与我们web容器中的servlet-api.jar造成冲突。

解决传递依赖方法如下:

一、 mvn dependency:tree
使用 mvn dependency:tree 命令查看传递依赖。可以看到com.cloudhopper.proxool:proxool:jar:0.9.1的会自动引入如下依赖。

[INFO] +- com.cloudhopper.proxool:proxool:jar:0.9.1:compile
[INFO] |  +- com.cloudhopper.proxool:proxool-cglib:jar:0.9.1:compile
[INFO] |  \- avalon-framework:avalon-framework-api:jar:4.3:compile
[INFO] |     \- avalon-logkit:avalon-logkit:jar:2.1:compile
[INFO] |        +- javax.servlet:servlet-api:jar:2.3:compile
[INFO] |        +- geronimo-spec:geronimo-spec-javamail:jar:1.3.1-rc3:compile
[INFO] |        \- geronimo-spec:geronimo-spec-jms:jar:1.1-rc4:compile


二、排除传递依赖
找到并修改POM文件,排除对servlet-api的依赖
<dependency>
<groupId>com.cloudhopper.proxool</groupId>
<artifactId>proxool</artifactId>
<version>0.9.1</version>
<exclusions>
<exclusion>
<artifactId>servlet-api</artifactId>
<groupId>javax.servlet</groupId>
</exclusion>
</exclusions>

</dependency>

如果使用Eclipse可以直接如下图操作:


猜你喜欢

转载自elvis4139.iteye.com/blog/2261830