目录
在POM.xm中的依赖项spring-support排除servlet-api依赖的传递
javax.servlet.http.HttpServletResponse 类在servlet-api-2.3.jar 中,同时也在 javax.servlet-api.3.1.0.jar包中,包servlet-api-2.3.jar 先加载,javax.servlet-api-3.1.0.jar后加载,实际上,HttpServletResponse 使用的就是servlet-api-2.3.jar中的类了,但我需要javax.servlet-api-3.1.0.jar的同签名类。
备注:两个包的同签名类,类名相同,单方法可能就不同了。
方法:mvn dependency:tree 指令在POM.xml所在的文件目录运行,输出的就是依赖树
查看maven的依赖树结构:mvn dependency:tree
输出到某个文件中:mvn dependency:tree -->tree.txt
操作:

说明:第一次运行需要下载一些插件,不用慌,等等即可。

报文如下:
[WARNING] The artifact commons-email:commons-email:jar:1.1 has been relocated to org.apache.commons:commons-email:jar:1.1
[INFO] lenovo-tms-web:lenovo-tms-web:war:0.0.1-SNAPSHOT
[INFO] +- commons-codec:commons-codec:jar:1.5:compile
[INFO] +- org.springframework:spring-webmvc:jar:4.1.7.RELEASE:compile
[INFO] | +- org.springframework:spring-beans:jar:4.1.7.RELEASE:compile
[INFO] | +- org.springframework:spring-core:jar:4.1.7.RELEASE:compile
[INFO] | \- org.springframework:spring-expression:jar:4.1.7.RELEASE:compile
[INFO] +- org.springframework:spring-jdbc:jar:4.1.7.RELEASE:compile
[INFO] +- org.springframework:spring-context:jar:4.1.7.RELEASE:compile
[INFO] +- org.springframework:spring-context-support:jar:4.1.7.RELEASE:compile
[INFO] +- org.springframework:spring-tx:jar:4.1.7.RELEASE:compile
[INFO] +- org.springframework:spring-orm:jar:4.1.7.RELEASE:compile
[INFO] +- org.springframework:spring-aop:jar:4.1.7.RELEASE:compile
[INFO] | \- aopalliance:aopalliance:jar:1.0:compile
[INFO] +- org.springframework:spring-oxm:jar:4.1.7.RELEASE:compile
[INFO] +- org.springframework:spring-web:jar:4.1.7.RELEASE:compile
[INFO] +- org.springframework:spring-support:jar:2.0.8:compile
[INFO] | \- commons-logging:commons-logging:jar:1.1:compile
[INFO] | +- logkit:logkit:jar:1.0.1:compile
[INFO] | +- avalon-framework:avalon-framework:jar:4.1.3:compile
[INFO] | \- javax.servlet:servlet-api[QQW1] :jar:2.3:compile
[INFO] +- org.aspectj:aspectjweaver:jar:1.7.2:compile
[INFO] +- org.hibernate:hibernate-validator:jar:5.0.1.Final:compile
[INFO] | +- javax.validation:validation-api:jar:1.1.0.Final:compile
[INFO] | +- org.jboss.logging:jboss-logging:jar:3.1.1.GA:compile
方法:Eclipse中在
中找到有问题的jar包,【右键】【Maven】【Open POM】 使用pom.xml视图查看,使用artifactId的值在依赖树中检索


报文:
4.0.0
javax.servlet
servlet-api
2.3
搜索文本:servlet-api,如下图:

可以看出依赖的顶层是:spring-spport,这就需要在spring-support中排除掉队servlet-api的依赖。
原始POM依赖项:
org.springframework
spring-support
${springsupportVersion}
compile
添加依赖传递排除后:
org.springframework
spring-support
${springsupportVersion}
compile
javax.servlet
servlet-api
方法: 1. 找到报错的类,F3 查看引用的jar包。2. 重新打印依赖树继续检索
方法1:可以看出引用的包是javax.servlet-api的包了

方法2:可以看出没有servlet-api的包了

END