Maven依赖冲突的几种有效解决方法总结

 更新时间:2023年07月30日 16:17:57   作者:老鼠只爱大米  
在项目开发中使用Maven管理Jar包时,常常会遇到Jar包依赖冲突,所以本文就给大家总结了几种解决Maven依赖冲突的有效方法,需要的朋友可以参考下

一、问题描述

在项目开发中使用Maven管理Jar包时,常常会遇到Jar包依赖冲突。其根本原因是不同Jar包引用了同一Jar包的不同版本,从而在代码调用时,无法确定使用的是哪个版本的Jarba包。

二、解决办法

解决这一问题的方法有多种,按照思路分为总结如下:

1、第一声明原则

在pom.xml配置文件中,如果有两个名称相同,版本的不同依赖声明,先写的会生效,所以先声明自己要用的版本。这里的名称相同,版本不同的依赖声明,既可以是直接依赖,也可以是传递依赖。

例如,b引用了a的0.0.1版本,c引用了b的0.0.2版本,如果我们想用的版本是0.0.1版本,那么可以将b的版本依赖放在c的前面。

2、路径优先原则

直接依赖优于传递依赖。如果传递依赖的Jar包版本冲突了,那么可以单独声明一个指定版本的依赖Jar包,即可解决冲突。例如,b引用了a的0.0.1版本,c引用了b的0.0.2版本,如果我们想用的版本是0.0.3版本,可以直接单独声明一个a的0.0.3版本。

3、排除原则

在发生传递依赖冲突时,如果依赖不是项目需要的,可以在对应的传递依赖声明中进行排除。例如,b引用了a的0.0.1版本,c引用了b的0.0.2版本,如果我们想用的版本是0.0.2版本,那么可以将b的版本依赖中排除a。

<dependency>
  <groupId>com.test</groupId>
  <artifactId>b</artifactId>
  <version>b的版本号</version>
    <exclusions>
      <exclusion>
        <artifactId>com.test</artifactId>
        <groupId>a</groupId>
      </exclusion>
    </exclusions>
</dependency>

到此这篇关于Maven依赖冲突的几种有效解决方法总结的文章就介绍到这了,更多相关Maven依赖冲突内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring Boot 集成接口管理工具 Knife4j

    Spring Boot 集成接口管理工具 Knife4j

    这篇文章主要介绍了Spring Boot 集成接口管理工具 Knife4j,首先通过创建一个 Spring Boot 项目展开主题,需要的小伙伴可以参考一下
    2022-05-05
  • Java中GC与四种引用的关系详解

    Java中GC与四种引用的关系详解

    这篇文章主要介绍了Java中GC与四种引用的关系详解,Java 中一共有 4 种类型的引用 : StrongReference、 SoftReference、 WeakReference 以及 PhantomReference这 4 种类型的引用与 GC 有着密切的关系, 让我们逐一来看它们的定义和使用场景,需要的朋友可以参考下
    2023-09-09
  • Java8中Function接口的使用方法详解

    Java8中Function接口的使用方法详解

    在 Java 8 中,Function 接口是 java.util.function 包中的一个函数式接口,函数式接口是仅包含一个抽象方法的接口,适用于 Lambda 表达式或方法引用,本文给大家介绍了Java8的Function接口的使用方法,需要的朋友可以参考下
    2024-09-09
  • Java实战之医院管理系统的实现

    Java实战之医院管理系统的实现

    这篇文章主要介绍了如何利用Java实现医院管理系统,文中用到的技术有:SpringBoot、Layui、Freemaker等,感兴趣的同学可以了解一下
    2022-04-04
  • java 读取系统Properties代码实例

    java 读取系统Properties代码实例

    这篇文章主要介绍了java 读取系统Properties代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • IDEA 2023 spring项目配置Maven全过程

    IDEA 2023 spring项目配置Maven全过程

    在IDEA中配置Maven需依次打开设置,搜索并配置Maven,成功时显示BUILD SUCCESS,此方法实用,供开发者参考,欢迎支持脚本之家
    2025-09-09
  • SpringSecurity中的Filter Chain(过滤器链)

    SpringSecurity中的Filter Chain(过滤器链)

    Spring Security的Filter Chain是由一系列过滤器组成的管道,每个过滤器执行特定的安全功能,Spring Security能够提供强大而灵活的安全控制机制,从而保护你的应用程序不受各种网络安全威胁的侵害,本文介绍SpringSecurity中的Filter Chain,感兴趣的朋友跟随小编一起看看吧
    2024-06-06
  • java编写猜数字游戏

    java编写猜数字游戏

    这篇文章主要为大家详细介绍了java编写猜数字游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • JAVA设计模式之单例模式详解

    JAVA设计模式之单例模式详解

    大家好,本篇文章主要讲的是JAVA设计模式之单例模式详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • Spring Boot集成Kafka的示例代码

    Spring Boot集成Kafka的示例代码

    本篇文章主要介绍了Spring Boot集成Kafka的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04

最新评论