maven解决包冲突

这篇具有很好参考价值的文章主要介绍了maven解决包冲突。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

这边篇文章主要是来讲解我们日常开发中碰到一些Maven包冲突的一个解决方案。如何去一步一步进行排查,然后找到思路解决某一个固定的痛点和问题。在我们日常的导入包当中,可能不经意间就会导入一些相同类名的包或者路径的包。因为不同的包,它可能依赖某一个版本的可能不是同一个版本,这样就会导致一个冲突产生。可能版本不一致也有一定的原因。

问题

这里主要是在讲我在开发中碰到一个类名冲突的一个问题。因为我导入的一个类的路径跟我想要的另一个类的路径重合了,但是版本和依赖却不一致。所以才产生了接下来的一个解决问题的过程。

maven解决包冲突,java后端,maven,pycharm,java

maven解决包冲突,java后端,maven,pycharm,java

排查问题

这里主要是在讲,我们进行一个pom文件的包导入的时候,在旁边可以清楚的看到对应的一个包的引用。你可以进行一个筛选。在这里你可以看到一些冲突的包,可以展示他的列表或者树状类型。这里尤其强调的一个点就是当我们需要找到某个包的时候,我们可以指定跳到它对应的jar包上面,也就是那类的实际代码上面,可以在Idea上面直接看到对应的jar,不得不说这是非常方便的一个工具。

maven解决包冲突,java后端,maven,pycharm,java

查找冲突

接着就是我们常见的一些jar包冲突的一些检查方法,在这里我们就可以看到。不同的包,但是它引用了同一个子版本的包,而且包路径相包的名字版本号是一致的,这就导致了一个冲突了。只需要排除对应的引用就好。

maven解决包冲突,java后端,maven,pycharm,java

图形预览

另外还有一种查看方式,就是通过一个图表的表格方式去查看不同的包之间的一个引用。在这里有一个点,主要是当你包引用的足够多的时候,就变得很卡顿。而且检索起来也很慢,但这种方式非常的直观看,有取舍吧。

maven解决包冲突,java后端,maven,pycharm,java

同样的,在这里你也可以去寻找你想要的包。进行一个跳跃到对应的实际的包和类。

maven解决包冲突,java后端,maven,pycharm,java

maven命令查找

另外还有一种方式是直接通过maven命令的方式去查找对应的一个包。

mvn dependency:tree -Dverbose -Dincludes=org.mockito:mockito-core 

[INFO] --- maven-dependency-plugin:3.1.1:tree (default-cli) @ agent ---
[INFO] Verbose not supported since maven-dependency-plugin 3.0
[INFO] com.nogle.util:agent:jar:2.0
[INFO] \- org.mockito:mockito-inline:jar:4.5.1:test
[INFO]    \- org.mockito:mockito-core:jar:4.5.1:test

解决方案

最后,在这里我找到了两个不同版本的包相冲突了,而且是来自不同的依赖,这样就好办了,我只需要删除或者排除对应的一个依赖就可以解决冲突这个问题。

maven配置环境


在最下面主要是我贴的一个。配置mvn环境的一个方式,因为有些时候可能我们用的idea的默认的一个maven的配置。从而导致你在终端无法进行一个mvn命令的操控。这就是详细的一个配置环境的过程。

        
vim ~/.bash_profile        
export M2_HOME=/apache-maven-3.6.3
export PATH=$M2_HOME/bin:$PATH
source ~/.bash_profile

总结

最后我想说的是当发现一个问题的时候,我们需要逐步拆解,一步一步找到我们需要处理的问题的点。不得不说idea这个编辑器还是非常强大的。今天这篇文章主要是对我的一个解决冲突的一个思路的回顾。

最后

点赞关注评论一键三连,每周分享技术干货、开源项目、实战经验、国外优质文章翻译等,您的关注将是我的更新动力!文章来源地址https://www.toymoban.com/news/detail-801766.html

到了这里,关于maven解决包冲突的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Maven 3-Maven依赖版本冲突的分析及解决小结

    举例 A依赖于B及C,而B又依赖于X、Y,而C依赖于X、M,则A除引B及C的依赖包下,还会引入X,Y,M的依赖包(一般情况下了,Maven可通过scope等若干种方式控制传递依赖)。 这里有一个需要特别注意的,即B和C同时依赖于X,假设B依赖于X的1.0版本,而C依赖于X的2.0版本,A究竟依赖

    2024年02月03日
    浏览(58)
  • Maven第八章:如何解决Maven的jar版本冲突

    前言 本文重点讲解Maven依赖冲突原因,maven依赖原则以及如何利用idea Maven Helper插件分析解决问题。 背景 开发过程中引入第三方jar遇到依赖冲突的,非常影响开发,甚至大部分时间都在调试版本兼容。

    2024年02月06日
    浏览(41)
  • maven依赖jar包时版本冲突的解决

    在pom.xml配置文件中,如果有两个名称相同版本不同的依赖声明,那么先写的会生效。 直接依赖优先于传递依赖,如果传递依赖的jar包版本冲突了,那么可以自己声明一个指定版本的依赖jar,即可解决冲突。 传递依赖冲突时,可以在不需要的jar的传递依赖中声明排除,从而解

    2024年02月03日
    浏览(63)
  • Maven解决jar包版本冲突的4种方法

      先解释下maven的依赖传递:a jar包引入了b jar包,如果项目中引入了a jar包,其实也会把a依赖的b jar包引入。那现在有a、c这2个jar包,a jar包依赖的是1.0.0版本的b jar包,c jar包也依赖了b jar包,版本是2.0.0;如果项目中引入了a、c jar包,那b jar包到底引入哪个版本呢,是1.0.0还

    2024年02月15日
    浏览(37)
  • 【Maven】jar包冲突原因与最优解决方案

    【Maven】jar包冲突原因与 最优 解决方案 你是否经常遇到这样的报错: 以上报错就有可能是jar包冲突造成的,Maven中jar包冲突是开发过程中比较常见而又令人头疼的问题,我们需要知道 jar包冲突的原理,才能更好的去解决jar包冲突的问题。本文将从jar包冲突的原理和解决jar包

    2023年04月23日
    浏览(43)
  • Java 签名org.bouncycastle 包冲突解决

    事由起因:对接银行 用银行的签名加密出了问题,问了银行的人无解,开始漫长自救道路 就是因为有2个类的路径一样,导致报这个错,org.bouncycastle.asn1.ASN1Encodable Signer information does not match signer information of other classess in the same package 全局搜这个类发现在 prov-ext-jdk15on 和 bcpr

    2024年02月15日
    浏览(32)
  • 【数据结构】 | java中 哈希表及其冲突解决

    🎗️ 博客新人,希望大家一起加油进步 🎗️ 乾坤未定,你我皆黑马 1、哈希表概念 顺序结构以及平衡树中 ,元素关键码与其存储位置之间没有对应的关系,因此在 查找一个元素时,必须要经过关键码的多次比较。顺序查找时间复杂度为O(N),平衡树中为树的高度,即O(Lo

    2024年01月19日
    浏览(46)
  • 【Maven】006-Maven 依赖传递和依赖冲突

    概念: Maven 依赖传递是指当一个项目依赖于另一个项目或库时,Maven 会 自动解析和获取 这些依赖,确保项目能够顺利构建和运行。 依赖传递包括 直接依赖和间接依赖 。直接依赖是项目 直接引用 的库,而间接依赖是 直接依赖所引用的其他库 。 作用: 简化项目管理 :Ma

    2024年02月02日
    浏览(46)
  • Maven 依赖传递和冲突、继承和聚合

    1.1.1 概念         假如有三个 Maven 项目 A 、 B 和 C ,其中项目 A  依赖 B ,项目 B  依赖 C 。那么我们可以说 A 依赖 C 。也就是说,依赖的关系为: A—B—C , 那么我们执行项目 A 时,会自动把 B 和 C 都下载导入到 A 项目的 jar 包文件夹中,这就是依赖的传递性。 1.1.2 作

    2024年01月21日
    浏览(46)
  • Maven 基础之依赖管理、范围、传递、冲突

    坐标和 mvnrepository 网站 在 maven 中通过『 坐标 』概念来确定一个唯一确定的 jar 包。坐标的组成部分有: 元素 说明 groupId 定义当前 Maven 组织名称 artifactId 定义实际项目名称 version 定义当前项目的当前版本 [✔] 注意 任意两个不同包,它们的这三个属性必定至少有一项是不同

    2024年02月12日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包