• maven.类包冲突解决案例


    目录

    问题描述

    操作步骤

    找到pom.xml目录

    打印依赖树

    查看jar包对应的AGV

    依赖树中搜索

    在POM.xm中的依赖项spring-support排除servlet-api依赖的传递

    查看依赖的jar包


    问题描述

    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

    操作:

    找到pom.xml目录

     

    打印依赖树

    • à cd D:\JavaWorkSpace\***  回车
    • d: 回车
    • mvn dependency:tree 回车

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

     报文如下:

    [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

    查看jar包对应的AGV

    方法: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.xm中的依赖项spring-support排除servlet-api依赖的传递

    原始POM依赖项:

                         org.springframework

                         spring-support

                         ${springsupportVersion}

                         compile

    添加依赖传递排除后:

                         org.springframework

                         spring-support

                         ${springsupportVersion}

                         compile

                        

                        

                               

                                      

                                       javax.servlet

                                       servlet-api

                               

                        

    查看依赖的jar包

    方法: 1. 找到报错的类,F3 查看引用的jar包。2. 重新打印依赖树继续检索

    方法1:可以看出引用的包是javax.servlet-api的包了

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


    END

     

  • 相关阅读:
    TEMPEST HDMI泄漏接收 5
    python+django协同过滤算法的美食O2O外卖点餐系统vue
    【kubernetes】关于k8s集群中的ingress规则案例
    数学建模——统计回归模型
    Arduino + ESP32-C3 + TFT(1.8‘ ST7735S)基础平台(实验五)温湿度
    计算机服务器中了DevicData勒索病毒怎么办?DevicData勒索病毒解密数据恢复
    AlexNet-深度卷积神经网络(CNN卷积神经网络)
    【汇总】剑指 offer Ⅱ 1 ~ 40 题笔记
    ConcurrentHashMap的transfer阅读
    淘宝图片搜索API / item_search_img-按图搜索淘宝商品(拍立淘)/图片搜索API调用值说明
  • 原文地址:https://blog.csdn.net/weixin_42754896/article/details/126431388