zoukankan      html  css  js  c++  java
  • maven依赖导致包重复加载及冲突

    maven中配置 pom时,有时配置添加一个 jar却会自动导入多个 jar包,往往这些自动导入的 jar包会与我们项目中已存在的 jar包重复,从而导致冲突。由于这些 jar包不是我们自己配置的,所以遇到这种问题往往感觉一头雾水,下面记录一下开发情况中遇到的这类问题。

    由于添加一个功能需要在项目中导入如下一个jar包

      <dependency>
            <groupId>commons-httpclient</groupId>
                <artifactId>commons-httpclient</artifactId>
                <version>3.1</version>           
       </dependency>  

    但在导入之后,原先正常的代码突然有一个地方报错

    Base64类是通过如下引入的

    import org.apache.commons.codec.binary.Base64;

    可以看到问题出在 commons.codec 包上,应该是有多余的重复jar包和它冲突了,查看Maven仓库果然如此,导入commons-httpclient包的同时导入了两个依赖jar包——》commons-logging-1.0.4.jar、commons-codec-1.2.jar。

    打开pom.xml文件,在Dependency Hierarchy(依赖列表)中查看jar包的依赖层次关系。在过滤栏中输入commons-codec,左侧出现了commons-codec相关包的依赖结构,右侧则是pom.xml全部依赖包的列表展示。

    直接在左侧选中 commons-httpclient 底下的commons-codec 的jar包,右键选择Exclude Maven Artifact...,然后保存pom.xml。问题解决。

    保存之后,该引入在pom中显示如下(为防止冲突,这里把commons-logging包的依赖也移除了)

    <dependency>
            <groupId>commons-httpclient</groupId>
                <artifactId>commons-httpclient</artifactId>
                <version>3.1</version>
                <exclusions>
                    <exclusion>
                        <artifactId>commons-codec</artifactId>
                        <groupId>commons-codec</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>commons-logging</artifactId>
                        <groupId>commons-logging</groupId>
                    </exclusion>
                </exclusions>
    </dependency>  
  • 相关阅读:
    阿里云help
    Docker 介绍和使用
    LoadRunner 技巧之 IP欺骗
    LoadRunner 技巧之THML 与 URL两种录制模式分析
    LoadRunner使用动态链接库技术
    浅谈软件性能测试中关键指标的监控与分析
    如何准备性能测试数据
    LoadRunner检查点使用小结
    LoadRunner性能测试样例分析
    web性能测试基本性能指标
  • 原文地址:https://www.cnblogs.com/zjfjava/p/9100898.html
Copyright © 2011-2022 走看看