maven依赖版本冲突如何处理
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>总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
IDEA 中创建并部署 JavaWeb 程序的方法步骤(图文)
本文主要介绍了IDEA 中创建并部署 JavaWeb 程序的方法步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2022-02-02
idea install 时提示jdk的某个jar包的包不存在的问题
这篇文章主要介绍了idea install 时提示jdk的某个jar包的包不存在的问题,本文给大家分享解决方法,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-09-09
Spring事务中@Transactional注解不生效的原因分析与解决
在Spring框架中,@Transactional注解是管理数据库事务的核心方式,本文将深入分析事务自调用的底层原理,解释为什么事务不生效,并提供多种解决方案,希望对大家有所帮助2025-03-03
SpringBoot使用Apache POI实现导出Word和PPT的完整代码
POI-TL(POI Template Language)是一个基于Apache POI的Word模板引擎,这篇文章主要介绍了SpringBoot如何使用Apache POI实现导出Word和PPT,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下2026-03-03


最新评论