你好,欢迎进入江苏优软数字科技有限公司官网!

诚信、勤奋、创新、卓越

友好定价、专业客服支持、正版软件一站式服务提供

13262879759

工作日:9:00-22:00

一招解决 Maven 依赖冲突的 IDEA 神器!

发布时间:2023-08-02

浏览次数:0

点击“结束代码生命”,关注并关注公众号

每日技术干货,第一时间送达!

什么是依赖冲突

Maven是一个非常有用的依赖管理工具,即使是最好的东西也不是完美的。 Maven的依赖机制会导致Jar包冲突。 比如现在你的项目中使用了两个Jar包,分别是A和B。现在A需要依赖另一个Jar包C,B也需要依赖C。而A依赖的C的版本是1.0, B所依赖的C版本为2.0。 这时,Maven会将1.0 C和2.0 C都下载到你的项目中,这样你的项目中就有了不同版本的C。 这时,Maven会按照依赖路径最短的原则决定使用那个版本的Jar包,而另一个无用的Jar包则不使用,这就是所谓的依赖冲突。

大多数时候,依赖冲突可能不会导致系统出现任何异常,因为Maven仍然选择使用Jar包。 而且,不排除在某些特定情况下,会出现类似于找不到类的异常情况。 因此,只要存在依赖冲突,在我看来,最好解决掉,不要给系统留下隐患。

解决方案

解决依赖冲突的方法是使用Maven提供的标签。 标签必须放在标签内部,如下图:

<dependency>
    <groupId>org.apache.logging.log4jgroupId>

    <artifactId>log4j-coreartifactId>
    <version>2.10.0version>
    <exclusions>
        <exclusion>
        <artifactId>log4j-apiartifactId>
        <groupId>org.apache.logging.log4jgroupId>
        exclusion>
    exclusions>
dependency>

log4j-core本身依赖于log4j-api,并且由于其他一些模块也依赖于log4j-api,但是两个log4j-api版本不同,所以我们使用标签来排除log4j-core依赖的log4j-api,在这样,Maven就不会下载log4j-core所依赖的log4j-apiintellij idea找不到图标,这就保证了我们的项目中只有一个版本的log4j-api。

梅文

听到这里,你可能会有疑问。 如何知道我的项目中哪些依赖的Jar包有冲突? Maven这个IDEA插件帮我们解决了这个问题。 插件的安装方法我就不说了。 既然你了解了Maven,相信你也可以安装插件。

插件安装完后,我们打开pom.xml文件,顶部会多一个选项

intellij idea找不到图标

点击这个选项

intellij idea找不到图标

找到冲突的,右键,然后选择排除冲突版本的Jar包。

小方法

不仅仅使用Maven查看依赖冲突,还可以使用IDEA提供的方法——Maven依赖灯,打开Maven窗口,选择,然后点击图标(Show)或者使用快捷键(Ctrl+Alt +Shift+U) ,可以打开Maven依赖节点配置灯

intellij idea找不到图标

图中,我们可以看到一些白色虚线,紫色虚线是依赖冲突intellij idea找不到图标,红色虚线是正常依赖。

intellij idea找不到图标

来源:.com/a/42396

PS:为了避免找不到这篇文章,可以收藏、点赞,方便浏览和搜索。

过去的推荐

如有侵权请联系删除!

13262879759

微信二维码