Maven工程jar包冲突解决方法

  maven确实是一个好用的项目管理工具,相比较传统的JAVAIDE,不需要你提前下载依赖包,只需要在配置文件中添加即可自动下载。但由于maven的传递性依赖特性,maven在下载某一个依赖包时,会连同这个jar包的依赖包一起下载下来,由此也带来了jar包冲突的问题。

解决方法:

  1、查看依赖关系:

  如果你是使用eclipse来做开发,你可以右键点击你的工程,然后选在run as -> maven build,在Goals的框里填入dependency:tree,回车运行即可。

  如果不是,使用命令行也可以,使用命令mvn dependency:tree

  2、取出冲突的依赖包

  在pom.xml中引用的包中加入exclusion,排除依赖,例如:

 1 <!-- 去除单个依赖 -->
 2 <dependency>
 3     <groupId>com.alibaba</groupId>
 4     <artifactId>dubbo</artifactId>
 5     <version>2.5.3</version>
 6     <exclusions>
 7         <exclusion>
 8             <artifactId>spring</artifactId>
 9             <groupId>org.springframework</groupId>
10         </exclusion>
11     </exclusions>
12 </dependency>
13 <!-- 去除全部依赖 -->
14 <dependency>
15     <groupId>com.alibaba</groupId>
16     <artifactId>dubbo</artifactId>
17     <version>2.5.3</version>
18     <exclusions>
19         <exclusion>
20             <artifactId>*</artifactId>
21             <groupId>*</groupId>
22         </exclusion>
23     </exclusions>
24 </dependency>

  

原文地址:https://www.cnblogs.com/liuyck/p/8375936.html

时间: 2024-10-24 00:10:55

Maven工程jar包冲突解决方法的相关文章

tomcat web工程 jar包冲突解决方法

目前在部署工程时,遇到了一个问题,报错信息如下: See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class 经检测,是工程包中含有javax.servlet包的JAR包,造成与Tomcat自身的servlet-api.jar的冲突. 1.问题的原因: tomcat 启动后先将tomcat/common/lib目录下的jar包全部读入内存,如果webapps目录里的应用程序中WEB-INF/l

Jar包冲突解决方法

前言 对于Jar包冲突问题,我们开发人员经常都会有碰到,当我们使用一些jar包中的类.方法等,或者有时遇到一些日志系统的问题(参考另一篇文章Jar包冲突导致的日志问题),我们会遇到ClassNotFoundException,NoSuchFieldException,NoSuchMethodException 之类的运行时异常,从经验上我们就会判断,Jar包冲突了.解决Jar包冲突问题,每个人都有每个人的方法,这里我介绍一下我的方法,供大家参考. 处理方法 当遇到jar包冲突时,我们首先确定是哪

java jar包冲突解决方法

jar包冲突几乎是每个java程序员都会遇到的问题,而且特别是大工程,jar包各种依赖,经常性发生包冲突.通常会报这样几个运行时异常: java.lang.NoSuchMehodError java.lang.NoClassDefFoundError 这类问题十有八九都是jar包冲突引起,要解决jar包冲突问题,我们先了解下导致这个冲突的原因. 导致jar包冲突的原因 1.mvn的传递依赖特性:mvn编译打包除了会引入直接申明的依赖,还会引入间接申明的依赖 2.mvn的依赖仲裁规则: 1). 按

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

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

解决Maven的jar包冲突

最近的一次项目引入了MongoDB,撸完代码,启动服务,Junit单元测试一跑,报错: java.lang.NoClassDefFoundError: org/springframework/core/DefaultParameterNameDiscoverer at org.springframework.data.mapping.model.PreferredConstructorDiscoverer.<clinit>(PreferredConstructorDiscoverer.java

SSH整合时jar包冲突解决的注意事项

在SSH项目整合的时候,要注意jar包冲突. 这里的原则是: 1,无依赖关系的舍低取高. 2.有依赖关系的取高. 怎么排查是否有冲突,在服务器项目的lib下查看是否有重名的. 注意:每次重新导入包以后要把服务器中的项目删掉再发布.

aven依赖分析,jar包冲突解决利器intellij idea插件Maven Helper强烈建议安装

还在为解决jar包依赖冲突痛苦??? 那就好好看看下面的文章吧! 目前大多公司的java项目都以Maven项目为主,最近也通过Maven Helper解决了一些生产问题,在这里分享一下安装和基本使用方法! 安装方法: File-Settings-Plugins 点击“Browse repositories” 在弹出搜索框输入"maven helper" 点击“Install”,安装完成后重启idea 基本使用: idea启动后,打开要分析的pom.xml,在编辑器的左下方会看到多出一行

java 包冲突解决方法

1.诊断包冲突 java.lang.NoSuchMethodError: org.apache.commons.io.output.DeferredFileOutputStream.<init>(ILjava/lang/String;Ljava/lang/String;Ljava/io/File;)V 2.解决 2.1 可见的依赖冲突 在eclipse中打开工程,在pom文件的dependency hierarchy中,搜冲突的包commons-io,查看各依赖包的依赖信息.包有依赖冲突的话,

Android Studio使用远程依赖时下载不了jar包的解决方法

使用AS很大的一个好处就是可以使用在线jar包,只需在引用jar包的时候在版本后加上+,比如: compile 'com.facebook.fresco:fresco:0.1.0+' 这样不用在jar包作者更新后再次手动更新jar包获取最新版本. 但是很多人包括我自己在不了解gradle使用的情况下,引用在线jar包时怎么都下载不下来,例如提示: 这尼马是没FQ么,不对,goagent更新AS都没问题,排除了墙的问题后一时想不到问题点在哪了. 早上请教了下同样出了此问题的基友,他解决了,他真的解