idea 中解决maven 包冲突的问题(maven helper)

日常开发中经常会遇到xxx.class 找不到的异常,但是这个类确实存在我们的项目中,就会感觉很离奇,其实这就是包冲突的问题

冲突问题

比如项目中引用了两个 fastjson.jar的版本,分别为

fastjson:1.2.28 
fastjson:1.2.3

我们用到了1.2.28中的某个类, 比如 A类,在版本更新中 1.2.3版本去掉了这个类,然而我们项目中maven 却把1.2.3的 jar 打包进去了,那我们就会报异常,不存在这个 class,但是我们调错误的时候却发现这个类存在,那我们怎么找到问题根源呢,到底是哪个包的需要Exclude 呢,我之前也不会,今天有幸找到个方法,分享给大家。

idea 中maven 问题

idea 中查看 maven 依赖只会给你一个复杂到极点图,基本没有啥价值,所以要安装个插件 maven helper,这个插件用了都说好啊

解决问题

  • 首先安装插件 maven helper(因为我已经安装了,所以没 install 的按钮了) 
  • 安装完成后,在 pom 文件下方会出现这个东西 
  • 点进去你会发现仿佛回到了 eclipse 
  • 接下来到重点了,选中冲突选项 conflicts,这一列都是存在冲突的包 
  • 以fastjson 为例 

    当然我们调错误的时候也可以直接搜索有问题的包,如下 
  • 选中右键就可以 Exclude 啦,想用1.2.28就把其他版本的Exclude掉,想用1.2.3就把其他版本的Exclude掉,是不是很方便。 

注:这仅仅是我个人的一点见解和使用心得,如有异议请留言指正,万分感谢

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sunpeng_sp/article/details/77393348

原文地址:https://www.cnblogs.com/a8457013/p/9108698.html

时间: 2024-11-10 06:55:25

idea 中解决maven 包冲突的问题(maven helper)的相关文章

Maven 解决JAR包冲突

在JAR 冲突的情况下, 利用Eclipse方式解决JAR包冲突时比较方便简洁的,步骤如下 1. 在Eclipse 中打开pom.xml , 选择  “Dependency  Hierarchy” 2, 在Filter 输入框中,输入冲突的jar,  比如: slf4j 3. 右边会显示所有依赖此包的JAR包 4.  如果你需要排除 冲突, 可以右键单击: 选择  exclude Maven artifact... 进行以上操作后, MAVEN 的依赖关系如下(举列如下:) 排除前: <depe

idea升级maven工程jar包版本和解决jar包冲突

原来用过eclipse的都知道,想要升级maven工程的jar包版本或者解决jar包冲突,直接在pom文件下的dependency hierarchy视图下右击冲突的jar包,将其exclude掉,然后在pom文件的dependencies视图下点击add按钮,然后添加自己需要的jar包即可.在公司用的是idea,还不是很熟悉,摸索之下在maven窗口中点击show dependencies出现jar包的依赖关系图,如下图所示:                                  

sbt发布assembly解决jar包冲突问题 deduplicate: different file contents found in the following

一.问题定义 最近在用sbt打assembly包时出现问题,在package的时候,发生jar包冲突/文件冲突问题,两个相同的class来自不同的jar包在classpath内引起冲突. 具体是:我有一个self4j的jar, 还有一个hadoop-common-hdfs的jar包,其中hadoop-common-hdfs.jar内包含了self4j这个jar包,导致冲突. 此类异常一般是由于打包不规范和打包疏忽引起的. (个人认为正确的打包策略是:只打包自己核心功能,不将依赖打包在一起,但是有

sbt公布assembly解决jar包冲突 deduplicate: different file contents found in the following

一个.问题定义 近期使用sbt战斗assembly发生故障时,包,在package什么时候,发生jar包冲突/文件冲突,两个相同class来自不同jar包classpath内心冲突. 有关详细信息:我有一个self4j的jar, hadoop-common-hdfs的jar包.当中hadoop-common-hdfs.jar内包括了self4j这个jar包,导致冲突. 此类异常通常是由于打包不规范和打包疏忽引起的. (个人觉得正确的打包策略是:仅仅打包自己核心功能.不将依赖打包在一起.可是有时为

解决jar包冲突问题

1.引入问题 1.1.导入jar包时maven会自动将该jar包所依赖的jar包也一起导入进来,比如spring-context依赖spring-beans.spring-beans依赖spring-core,在导入spring-context时会同时自动导入spring-beans.spring-core 1.1.1.maven依赖 <dependencies> <dependency> <groupId>org.springframework</groupId

Maven解决jar包冲突

在使用Maven时,经常会遇到jar包冲突的问题,解决办法: 在pom.xml文件中使用maven的exclusions工具,语法如下: 避免hadoop-client-2.2.0.jar引入hadoop-hdfs-2.2.0.jar <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>2.2

Maven中日志jar包冲突报错:Class path contains multiple SLF4J bindings

错误表现: SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/D:/learn/Java/maven/repository_taotao/org/slf4j/slf4j-log4j12/1.6.4/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: Found binding in [

关于maven包冲突的一些思路

在最近的项目中出现了很多包冲突,有时一下子就能猜到错误,但是有写往往需要很久都不能定位问题,尤其是项目人员参差不齐,有时为了方便私自引入一些工具类,而未考虑到项目本身. maven的出现方便了我们的包导入,引用但是maven引入的jar包往往也引入了其余的jar包,而这往往是包冲突最隐蔽的地方,尤其是对引入的包结构不熟悉,十分难分析到问题的原因. 包冲突的迹象: 1.运行了很久的代码,突然间就报错了,而在最近的代码中又完全没有涉及到该代码的改动,或者不定时异常. 现象:a.出现方法找不到.(xx

NoSuchMethodError idea解决jar包冲突

报NoSuchMethodError(使用spring boot框架idea)一般是jar包冲突 Exception in thread"main" java.lang.NoSuchMethodError:org.springframework.http.MediaType.getCharset()Ljava/nio/charset/Charset; maven工程,一个artifact的jar包可能不只一处被依赖:有时候依赖会出现相同的artifact却不同版本,相互存在冲突,这时就