• Maven依赖冲突


    依赖冲突

    依赖冲突是指项目依赖的某一个jar包,有多个不同的版本,因而造成类包版本冲突

    依赖传递

    项目依赖了A,A依赖了B,项目自动依赖了B

    注意:父项目中的依赖有 标签属性为   test  provided  则不会依赖传递

    依赖冲突的原因

    依赖冲突很经常是类包之间的间接依赖引起的,每个显式声明的类包都会依赖于一些其它的隐式类包,这些隐式的类包会被maven间接引入进来,从而造成类包冲突

    如何解决依赖冲突

    一般maven会自动通过第一声明者优先就近原则解决冲突

    如果不行,首先查看产生依赖冲突的类jar,其次找出我们不想要的依赖类jar,可以手动排除,锁定版本等

    一.查看依赖冲突

    1.安装Maven Helper插件

    • Conflicts(查看冲突)
    • All Dependencies as List(列表形式查看所有依赖)
    • All Dependencies as Tree(树形式查看所有依赖)

     2.命令行 mvn -Dverbose dependency:tree

    二.解决冲突

    1.第一声明者优先原则

    在pom文件定义依赖,先声明的依赖为准

    2.就近原则

    A 依赖spring-beans-4.2.4, A 依赖B依赖spring-beans-3.0.5,则spring-beans-4.2.4优先被依赖在A中,因为spring-beans-4.2.4相对spirng-beans-3.0.5被A依赖的路径最近

    3.排除依赖

    1. <dependency>
    2. <groupId>org.apache.strutsgroupId>
    3. <artifactId>struts2-spring-pluginartifactId>
    4. <version>2.3.24version>
    5. <exclusions>
    6. <exclusion>
    7. <groupId>org.springframeworkgroupId>
    8. <artifactId>spring-beansartifactId>
    9. exclusion>
    10. exclusions>
    11. dependency>

    4.锁定版本 通过dependencyManagement锁定库的版本

    1. <dependencyManagement>
    2. <dependencies>
    3. <dependency>
    4. <groupId>org.springframeworkgroupId>
    5. <artifactId>spring-jdbcartifactId>
    6. <version>5.2.5.RELEASEversion>
    7. dependency>
    8. dependencies>
    9. dependencyManagement>
    10. <dependencies>
    11. <dependency>
    12. <groupId>org.springframeworkgroupId>
    13. <artifactId>spring-jdbcartifactId>
    14. dependency>
    15. dependencies>

    5.提取版本号 统一版本号解决

    1. <properties>
    2. <mybatisplus.version>2.1.3mybatisplus.version>
    3. properties>
    4. <dependencies>
    5. <dependency>
    6. <groupId>com.baomidougroupId>
    7. <artifactId>mybatis-plusartifactId>
    8. <version>${mybatisplus.version}version>
    9. dependency>
    10. dependencies>

  • 相关阅读:
    开发者新手指南:进入 Web3 前,你需要掌握哪些必备技能?
    StoryDALL-E复现(基于预训练文本到图像Transformer的故事续编)
    JAVA-反射+注解
    蓝桥杯(数论)练习
    Springboot学生成绩管理系统idea开发mysql数据库web结构java编程计算机网页源码maven项目
    理解Lua中“元表和元方法“
    Codeforces Round #800 (Div. 2)
    苍穹外卖-01
    【分布式搜索引擎elasticsearch】
    Java基于微信小程序的青少年健康心理科普平台
  • 原文地址:https://blog.csdn.net/Aoutlaw/article/details/125893253