zoukankan      html  css  js  c++  java
  • 解决Maven依赖jar包冲突总结

    maven导入jar包中的一些概念:
          直接依赖:项目中直接导入的jar包,就是该项目的直接依赖包。
          传递依赖:项目中没有直接导入的jar包,可以通过项目直接依赖jar包传递到项目中去。 

    解决jar包冲突的方式:

    方式一:
          第一声明优先原则:哪个jar包的坐标在靠上的位置,这个jar包就是先声明的。
          先声明的jar包坐标下的依赖包,可以优先进入项目中。

         也就是pom文件里,谁写在上面一些谁进入项目依赖中

    方式二:
          路径近者优先原则。直接依赖路径比传递依赖路径近,那么最终项目进入的jar包会是路径近的直接依赖包。

    比如spring-bens和spring-context中spring-core冲突了,那么我直接导入spring-core

    <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>

         <version>5.1.0</version>

    </dependency>

    那么将会使用我直接依赖的版本,而不用他们传递依赖的版本了,路径近优先。

    方式三【推荐使用】:
          直接排除法。

         <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
          <exclusions>
            <exclusion>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
          </exclusions>

    </dependency>
          当我们要排除某个jar包下依赖包,在配置exclusions标签的时候,内部可以不写版本号。
          因为此时依赖包使用的版本和默认和本jar包一样。

  • 相关阅读:
    为什么你不是优秀的人?是这个原因么?
    我们应选择怎样的IT公司
    如何获得加薪
    隐藏为了适时出现
    如何通过一个问题,完成最成功的技术面试
    阿里负责人揭秘面试潜规则
    应聘互联网公司的简历应该是怎么样的?
    linq 图解
    Lambda表达式的前世今生
    Lambda应用设计模式
  • 原文地址:https://www.cnblogs.com/chz-blogs/p/14255345.html
Copyright © 2011-2022 走看看