maven依赖版本冲突如何处理

 更新时间:2025年01月26日 09:48:57   作者:百万彩票中奖候选人  
文章主要介绍了Maven依赖版本冲突的原因以及如何处理版本冲突的方法,包括使用exclusions排除依赖和使用dependencyManagement锁定版本号

maven依赖版本冲突处理

maven依赖版本冲突一般是由于间接依赖导致一个jar包有多个不同的版本,

比如:A依赖了B的1.0版本,C依赖了B的2.0版本,项目依赖A和C从而间接依赖了B的1.0和2.0版本,此时B有两个版本引入到了项目中,当存在版本冲突时可能会出现ClassNotFoundException、NoSuchMethodError等错误。

处理版本冲突可以使用以下方法:

方法1 : 使用 exclusions 排除依赖

比如:我们只依赖B的1.0版本,此时可以在依赖C时排除对B的依赖

 <!-- 排除 Spring Boot 依赖的日志包冲突 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

方法2 : 使用 dependencyManagement 锁定版本号

通常在父工程对依赖的版本统一管理。

比如:我们只依赖B的1.0版本,此时可以在父工程中限定B的版本为1.0.

	<packaging>pom</packaging>
	<properties>
        <spring-cloud.version>Hoxton.SR9</spring-cloud.version>
    </properties>
    
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Eclipse远程debug的步骤与注意事项

    Eclipse远程debug的步骤与注意事项

    今天小编就为大家分享一篇关于Eclipse远程debug的步骤与注意事项,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • idea如何自定义代码模板

    idea如何自定义代码模板

    这篇文章主要介绍了idea如何自定义代码模板问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • 如何利用Spring MVC实现RESTful风格

    如何利用Spring MVC实现RESTful风格

    这篇文章主要介绍了如何利用Spring MVC实现RESTful风格,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • java后台实现js关闭本页面,父页面指定跳转或刷新操作

    java后台实现js关闭本页面,父页面指定跳转或刷新操作

    这篇文章主要介绍了java后台实现js关闭本页面,父页面指定跳转或刷新操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Java调用DeepSeek实现多轮对话功能

    Java调用DeepSeek实现多轮对话功能

    对于广大Java开发者而言,DeepSeek这一先进的人工智能技术,犹如一把钥匙,为我们打开了提升开发效率与创新能力的新大门,本文给大家介绍了Java调用DeepSeek实现多轮对话功能,需要的朋友可以参考下
    2025-03-03
  • java中static的用法及注意点

    java中static的用法及注意点

    在本篇文章里小编给大家整理的是一篇关于java中static的用法及注意点,有兴趣的朋友们可以学习下。
    2021-03-03
  • Java中流的有关知识点详解

    Java中流的有关知识点详解

    今天小编就为大家分享一篇关于Java中流的有关知识点详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • Echarts+SpringMvc显示后台实时数据

    Echarts+SpringMvc显示后台实时数据

    这篇文章主要为大家详细介绍了Echarts+SpringMvc显示后台实时数据,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • Spring boot中filter类不能注入@Autowired变量问题

    Spring boot中filter类不能注入@Autowired变量问题

    这篇文章主要介绍了Spring boot中filter类不能注入@Autowired变量问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Java用20行代码实现抖音小视频批量转换为gif动态图

    Java用20行代码实现抖音小视频批量转换为gif动态图

    这篇文章主要介绍了Java用20行代码实现抖音小视频批量转换为gif动态图,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04

最新评论