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.0</version>
  <exclusions>
  	<exclusion>
  		<groupId>org.apache.hadoop</groupId>
  		<artifactId>hadoop-hdfs</artifactId>
  	</exclusion>
  </exclusions>
</dependency>

加入后,hadoop-client-2.2.0.jar将不会引入hadoop-hdfs-2.2.0.jar

时间: 2024-08-11 03:32:59

Maven解决jar包冲突的相关文章

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确实是一个好用的项目管理工具,相比较传统的JAVAIDE,不需要你提前下载依赖包,只需要在配置文件中添加即可自动下载.但由于maven的传递性依赖特性,maven在下载某一个依赖包时,会连同这个jar包的依赖包一起下载下来,由此也带来了jar包冲突的问题. 解决方法: 1.查看依赖关系: 如果你是使用eclipse来做开发,你可以右键点击你的工程,然后选在run as -> maven build,在Goals的框里填入dependency:tree,回车运行即可. 如果不是,使用命令

解决Maven的jar包冲突

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

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却不同版本,相互存在冲突,这时就

IntelliJ IDEA查找依赖关系,解决jar包冲突

maven工程,一个artifact的jar包可能不只一处被依赖:有时候依赖会出现相同的artifact却不同版本,相互存在冲突,这时就需要exclude某个版本. 试了在命令行工程目录下执行mvn dependency:tree可以出来文本的依赖关系,但是不会把一个artifact的每处依赖都显示出来,只会出现第一次被依赖的地方. 使用eclipse的都知道,如果要查看一个jar包是如何被依赖进来的,可以打开工程的pom.xml,切换到dependency hierarchy视图,然后右上角F