IDEA使用Maven构建项目时jar包冲突的判断和解决方法?如下图:

IDEA使用Maven构建项目时jar包冲突的判断和解决方法?如下图:

问题描述:

图片说明
如上图所示,两个httpclient,一个4.5.2 一个4.5.3,这样算是冲突吗?
如果冲突该怎么解决?可否删掉其中一个

  1. 这不算冲突,冲突的话,会在编译或者运行是报出错误,如:IncompatibleClassChangeError: class xxxx
  2. 实红线表示该jar包具有多个版本,点击实红线就能看到最终引用指向(虚红线)
  3. 由于4.5.3版本比4.5.2版本路径更短(maven版本选择的一个策略,具体可查网络),所以被优先选择
  4. 解决方案就是在需要排除的pom.xml中exclude不需要的版本,如下示例:
 <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-lambda-java-core</artifactId>
            <version>${aws-lambda-java-core.version}</version>
            <exclusions>
                <exclusion>
                    <artifactId>commons-logging</artifactId>
                    <groupId>commons-logging</groupId>
                </exclusion>
            </exclusions>
        </dependency>

如若是两个,加载的时候就不知道加载那个了。

 <exclusions>
        <exclusion>
            <groupId>xxx</groupId>
            <artifactId>xxx</artifactId>
        </exclusion>
    </exclusions>

忽略掉其中一个