0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Maven依赖冲突的几种常用方法

科技绿洲 来源:Java技术指北 作者:Java技术指北 2023-09-30 11:11 次阅读

Maven依赖冲突是一个很常见的问题,它通常发生在项目中有多个依赖包含相同库的不同版本时。我这边解决Maven依赖冲突的几种常用方法如下:

1、显示依赖树

首先,使用以下命令查看项目的依赖树,以确定哪些依赖导致了冲突:

mvn dependency:tree

图片

2、排除依赖

知道了有哪些依赖导致冲突,那么在pom.xml中,我们就可以使用标签来排除不需要的依赖。

< dependency >
     < groupId >com.some.group< /groupId >
     < artifactId >some-artifact< /artifactId >
     < version >1.0.0< /version >
     < exclusions >
         < exclusion >
             < groupId >com.conflict.group< /groupId >
             < artifactId >conflict-artifact< /artifactId >
         < /exclusion >
     < /exclusions >
 < /dependency >

3、指定依赖版本

如果项目依赖多个版本的同一个库,Maven默认会使用最高版本。但是你也可以明确指定需要的版本。

< dependency >
     < groupId >com.some.group< /groupId >
     < artifactId >some-artifact< /artifactId >
     < version >1.0.0< /version >
 < /dependency >

4、使用

在多模块项目中,你可以在父POM中使用来统一管理所有子模块的依赖版本。

< dependencyManagement >
     < dependencies >
         < dependency >
             < groupId >com.some.group< /groupId >
             < artifactId >some-artifact< /artifactId >
             < version >1.0.0< /version >
         < /dependency >
     < /dependencies >
 < /dependencyManagement >

子模块只需要声明需要用到的依赖,不需要指定版本。

5、使用properties来管理版本

还可以使用Maven的properties元素来更简单地管理依赖版本。

< properties >
     < some-artifact.version >1.0.0< /some-artifact.version >
 < /properties >
 
 < dependencies >
     < dependency >
         < groupId >com.some.group< /groupId >
         < artifactId >some-artifact< /artifactId >
         < version >${some-artifact.version}< /version >
     < /dependency >
 < /dependencies >

6、强制使用某个版本

在极端情况下,可以通过中的同时使用,来强制Maven使用特定版本的依赖。

7、解决插件冲突

依赖冲突不仅仅可能出现在项目的库依赖中,还可能出现在插件依赖中。确保插件的版本也没有冲突。

8、重新构建和测试

解决冲突后,不要忘记运行mvn clean install来重新构建项目,并执行全面的测试以确保没有破坏任何功能。

注意:解决依赖冲突可能会引入运行时错误,因此在修改依赖后务必进行全面的测试。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2654

    浏览量

    47282
  • 命令
    +关注

    关注

    5

    文章

    674

    浏览量

    21962
  • maven
    +关注

    关注

    0

    文章

    30

    浏览量

    3695
收藏 人收藏

    评论

    相关推荐

    怎么解决依赖关系中vi冲突

    冲突项是Error Cluster From Error Code.vi。如果不在依赖关系中可以放进项目库中来解决同名冲突。在依赖关系中怎么解决?大神指教
    发表于 09-25 21:14

    Linux下的Maven安装方法

    关键步骤如下: 1. 下载Maven包. 2. 解压Maven包. 3.配置Maven系统参数,验证Maven是否正确安装.
    发表于 07-23 08:01

    常用几种接地方法

    简单列举几种常用的接地方法
    发表于 03-29 08:20

    几种常用的测量角度速度的方法原理是什么?

    几种常用的测量角度速度的方法原理是什么?三轮车可以用编码器测速吗?还是只能用光电编码盘?
    发表于 10-19 09:44

    调试嵌入式处理器的几种常用方法

    调试嵌入式处理器的几种常用方法 前言 在任何产品
    发表于 03-11 12:25 1583次阅读
    调试嵌入式处理器的<b class='flag-5'>几种</b><b class='flag-5'>常用</b><b class='flag-5'>方法</b>

    常用几种管道检测方法

    常用几种管道检测方法  管道运输是石油、天然气运输采用的主要方式。目前,在我国近70%的原油、100%的天然气是通过管道来进行运输
    发表于 03-20 11:50 1w次阅读

    几种分析电路的常用方法

    几种分析电路的常用方法,感兴趣的小伙伴们可以瞧一瞧。
    发表于 09-18 17:15 0次下载

    常用几种无损探伤仪检测方法介绍

    常用几种无损探伤仪检测方法介绍
    发表于 02-07 16:15 14次下载

    单片机程序常用几种调试方法

    单片机程序常用几种调试方法,这些调试方法都需要结合电脑上位机,以下我罗列一些调试方法
    发表于 07-17 09:31 1.3w次阅读

    分析对比几种常用轴修复方法

    分析对比几种常用轴修复方法
    发表于 12-02 11:05 1次下载

    浅谈传感器几种常用的简单处理方法

    在传感器使用中,我们常常需要对传感器数据进行各种整理,让应用获得更好的效果,以下介绍几种常用的简单处理方法
    发表于 03-02 09:35 556次阅读

    如何理解Maven拉包原理,搞定Maven构建项目

    依赖是我们在使用 Maven 构建项目时最常使用的功能,通过依赖标签,我们可以直接从Maven仓库中引入对应的Jar包,无需手动再将Jar添加到目录下了,可谓是十分方便,不过我们除了使
    发表于 05-25 09:50 544次阅读
    如何理解<b class='flag-5'>Maven</b>拉包原理,搞定<b class='flag-5'>Maven</b>构建项目

    如何使用Maven命令检测重复的依赖关系

    在我们平时的开发过程中,常常会遇到引入各种不同的 jar 包,然后引发的 Maven 依赖冲突,今天我们来学习下如何使用 Maven 命令检测 pom.xml 中的重复
    的头像 发表于 10-07 16:36 880次阅读

    几种常用的产生负电源的方法

    几种常用的产生负电源的方法
    的头像 发表于 12-05 15:54 1268次阅读
    <b class='flag-5'>几种</b><b class='flag-5'>常用</b>的产生负电源的<b class='flag-5'>方法</b>

    实际上手体验maven面对冲突Jar包的加载规则

    的Jar包来实现功能开发,各种第三方包之间可能会存在依赖关系,不同版本的依赖就会可能导致依赖间的相互冲突,进而导致整个项目加载的失败。 这篇文章主要记录了本次遇到的问题:即
    的头像 发表于 08-08 11:22 167次阅读
    实际上手体验<b class='flag-5'>maven</b>面对<b class='flag-5'>冲突</b>Jar包的加载规则