精华内容
下载资源
问答
  • jar包版本冲突怎样解决
    2021-06-18 20:00:51

    jar包版本冲突怎样解决

    问题产生的背景

    ​ maven 是一款 jar 包管理工具,它让我们不再关注jar包的查找和下载,通过搭建私服,对一个公司来讲,包的版本管理问题也变得so easy ,但是随之而来的,也也会产生新的问题。

    问题产生的原因

    ​ maven 下载包是有原则的,对于一个项目同一种 jar 包,只会下载一个版本。

    maven 是怎样选择不同版本的 jar 包的

    1. 覆盖优先,对于同一个 pom.xml 文件前面的会被后面的覆盖,所以子工程会优先父工程

    2. 依赖路径近优先,比如x,在A ->B->C->x(1.0), D->E->x(2.0) maven会选择x(2.0)

    3. 相同路径下,声明优先原则, 在pom.xml 中,从上到下,优先声明的版本会被选择

    为什么会产生版本冲突

    由于maven 只会选择不同版本的一个,如果使用低版本的,而引用高版本的是用来低版本的就会发生版本冲突;如果引用高版本,但是高版本不兼容低版本的内容,低版本使用到不兼容的部分,就会发生版本冲突。

    版本冲突表现

    版本冲突最常见的表现是某个类找不到

    怎样解决版本冲突

    1. 首先需要找到那个jar包发生了版本冲突,这也是最为重要的。我想最为直接的方法就是找到发生类加载不到的类在那个 jar 下,一般而言,百度一下就能找到。如果还是没找到,就需要借助工具例如maven helper 来分析。
    2. 找到了版本的jar,就需要做出抉择,选择那个jar包。大多数选择是选择高版本,原因就是大部分都是高版兼容低版本。
    3. 建议通过dependencyManagement来管理jar 包的版本。
    更多相关内容
  • 检测工具 jar包冲突

    2018-05-09 09:24:48
    检测工具 jar包冲突
  • 解决jar包版本冲突

    2020-07-17 16:58:18
    当两个jar中同时引用一个jar,有可能会因为两个引用jar版本不同冲突,如上图 解决方法1:统一版本 <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</...

    当两个jar中同时引用一个jar,有可能会因为两个引用jar的版本不同冲突,如上图

    解决方法1:统一版本

    <dependency>
    	<groupId>com.google.guava</groupId>
    	<artifactId>guava</artifactId>
    	<version>20.0</version>
    </dependency>

    直接在pom文件中指定该引用jar版本

    解决方法2: 去除冲突jar包中的引用

    直接通过idea查找依赖图, 搜索出带红线的冲突, exlude就可以了

    展开全文
  • Maven 依赖jar包版本冲突解决

    千次阅读 2020-12-31 11:33:20
    然而,过多复杂的jar包依赖就可能造成版本冲突问题。比如:项目依赖A和B;A依赖C1.0,B依赖C2.0,如果C的两个版本不兼容,我们的项目就会出现问题。像例子中这样的C在还是很多的,最常见的就属apache的...

    Java的强大之处就是在于它的生态环境,有众多的轮子支持复杂项目的开发。现在基本上每个稍微有点规模的Java项目都会依赖到众多的jar包,而Maven应该是目前管理jar包依赖最流行的工具。然而,过多复杂的jar包依赖就可能造成版本冲突问题。比如:

    项目依赖A和B;A依赖C1.0,B依赖C2.0,如果C的两个版本不兼容,我们的项目就会出现问题。

    像例子中这样的C在还是很多的,最常见的就属apache的一堆工具包,比如commons-logging;

    冲突解决方法:

    1 分析冲突的jar包的依赖路径

    mvn dependency:tree -Dverbose -Dincludes=commons-logging:commons-loggging

    这条命令可以打印出所有依赖了groupId和artifactId都为commons-logging的jar包的依赖路径。

    2 选择一个所需的版本

    在两个冲突的版本中,我们在自己的项目中用到了哪个版本的语法,就选择哪个。

    3 在本项目的pom中将冲突的依赖排除:

    具体写法:

    比如我们要将一个依赖中的相应的jar包排除:

    Java

    com.xxx.xx

    xxx

    x

    com.springsource.slf4j.org.apache.commons.logging

    org.slf4j

    最后推荐一下intellij,在intellij中打开你的pom.xml,右键单击内容,选择diagram->show dependencies, 会自动执行mvn:dependency 并绘制一个依赖树,列出所有的依赖包如下图所示。想要排除哪个,可以直接右键选择"exclude".不过目前我还没发现怎样像命令行一样过滤树的结果,所有如果依赖太多,还是先执行一下命令找出哪里的依赖冲突了比较好。

    ![dependency.jpg](http://upload-images.jianshu.io/upload_images/1713176-1b64d1abc8bd6ebd.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    展开全文
  • Eclipse maven 解决jar包版本冲突

    万次阅读 2018-05-24 14:20:56
    jessezeng解决maven依赖传递中的版本冲突问题通常情况下,我们都比较喜欢使用maven进行项目管理,要加个依赖包也非常简单,不需要到处去下载jar包,当然除了maven之外,也还有一些非常不错的工具。在使用maven进行...

    解决maven依赖传递中的版本冲突问题

    通常情况下,我们都比较喜欢使用maven进行项目管理,要加个依赖包也非常简单,不需要到处去下载jar包,当然除了maven之外,也还有一些非常不错的工具。在使用maven进行项目依赖管理的时候,有时候会出现一种情况,多个不同的开源组件都依赖了另外一个组件,但是这个组件的版本却不一样,在maven依赖中就会看到两个版本不同的jar,通常我们可以根据实际情况排除其中一个,当然前提是这个版本没有太大的差异,兼容。老规矩,直接了当说怎么做吧:

    1、手工添加配置:在dependency标签里使用子标签exclusions,比如A组件使用了zookeeper 3.3.3的依赖包,B组件使用了zookeeper 3.3.6的依赖包,这时候我们要排除3.3.3这个版本可以这样做:

    复制代码
          <dependency>
            <groupId>com.xxx</groupId>
            <artifactId>A</artifactId>
              <exclusions>
                  <exclusion>
                      <groupId>org.apache.zookeeper</groupId>
                      <artifactId>zookeeper</artifactId>
                  </exclusion>
              </exclusions>
          </dependency>
    复制代码

    2、借助工具排除,通过eclipse的pom编辑工具:

     

    这样就可以解决同一个组件多个版本问题,但这个是有前提的,前面也已经提到过了。。。

    另外也可以使用命令mvn project-info-reports:dependencies  查看项目依赖情况。

    展开全文
  • 在开发过程中,遇到几次jar包版本冲突问题,下面是我解决该问题的方式,这篇文章内容包含如何查找版本冲突jar包版本冲突的解决,下面以我在项目中遇到的实际情况为例子来讲述: 背景: 最近项目中需要集成阿里...
  • pom.xml 添加一个spring-context的jar包 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.4.RELEASE<...
  • idea查找jar包版本冲突并解决

    千次阅读 2019-11-17 14:39:39
    参考:https://blog.csdn.net/u014071434/article/details/79394491 参考:... 使用idea查看有冲突的maven项目的pom文件,右键Diagrams->Show Dependencies,显示依赖如下 显示红线表示这个guav...
  • 在开发的过程中,我们难免会遇到各种jar包冲突,解决了就可以解决大部分的问题。 maven工程,一个artifact的jar包可能不只一处被依赖;有时候依赖会出现相同的artifact却不同版本,相互存在冲突,这时就需要exclude...
  • 在spring reference中提到一个解决spring jar包之间版本冲突的解决方案,原文如下 It is possible to accidentally(意外地) mix different versions of Spring JARs when using Maven. For example, you may find ...
  • jar包版本冲突问题

    千次阅读 2018-07-02 22:51:23
    jar包版本冲突问题 特征:NoSuchMethodException/ClassNotFoundException/NoClassDefFoundError/ClassCastException 排查: 1)查看jar包版本:-XX:+TraceClassLoading 或 -verbose:class 2)找到冲突jar包...
  • maven排查jar包版本冲突

    千次阅读 2017-10-20 14:43:56
    因此,自动下载的jar包和已存在的jar包可能存在相同的jar包,但是版本不一致。此处就造成了冲突排查方法1、在命令行中,跳转到项目路径。 2、先清除,再重新安装:mvn clean install. 3、查询依赖关系,并导入到名...
  • 主要介绍了Maven jar包冲突的解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 主要介绍了Jar包冲突问题原理及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 压缩包里面有myself工程。里面只有一个类。可以自己创建两个版本的myself的jar包,然后测试osgi解决jar包冲突
  • 什么是依赖冲突/版本冲突? Maven的依赖机制会导致Jar...这时Maven会采用最短路径优先原则(即,根据寻找到的依赖路径中最短的),来决定使用哪个版本Jar包,而另一个无用的Jar包则未被使用,这就是所谓的依赖冲突
  • 在springboot+maven jar包版本冲突的解决方案 通过 exclusion 标签排除掉不需要的 jar 包。
  • maven解决jar包版本冲突

    万次阅读 2016-05-18 18:55:44
    Maven对于新手来说是《步步惊心》,因为它包罗万象,博大精深...Maven对于新手来说,最痛苦的一件事莫过于之间的冲突,由于Maven的依赖传递性,当你引入一个依赖类时,其身后的依赖类也一起如过江之鲫纷至沓来了。 
  • 记一次解决jar包版本冲突

    万次阅读 2019-06-30 20:02:36
    既然EasyExcel内部引用了POI的jar包,但是我本来的pom.xml文件中也引用POI的jar,会不会是jar包版本冲突造成的呢?接下来,分别查看了本身pom.xml引用POI的版本,为3.8,EasyExcel版本1.1.2-beat1内部引用的POI版本...
  • 主要介绍了Maven中jar包冲突原理与解决办法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 主要介绍了完美解决android 项目jar包冲突的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 问题:在做项目时,遇到jar版本冲突的问题,并且老代码依赖不能用新jar包代替,要保证功能不变须要保证两个jar都能使用 思路:使用runtime 的exec 方式另启线程运行,然后返回结果 解决:  1):创建可运行的jar...
  • 项目中引用jar包版本冲突

    千次阅读 2018-08-12 20:39:36
    项目中引用jar包版本冲突 留高版本 去除低版本 &lt;!-- jasperreport --&gt; &lt;dependency&gt; &lt;groupId&gt;net.sf.jasperreports&lt;/groupId&gt; &lt;artifactId&...
  • IDEA jar包冲突解决办法

    千次阅读 2022-02-21 15:56:08
    maven Helper 插件快速解决jar包冲突
  • maven依赖jar包版本冲突解决方案

    千次阅读 2020-06-30 16:26:51
    jar包版本是以groupId+artifactId为坐标的,在groupId+artifactId相同的情况下version不同代码不同的版本,一般都是version的不同导致的jar冲突。 同一个产品除非是大版本的升级,否则groupId+artifactId一般不会变...
  • jstl Jar包 以及版本冲突问题解决 内附两个版本Jar包 以及版本冲突解决方法
  • maven依赖jar包版本冲突的解决

    千次阅读 2018-03-11 22:40:26
    共有四种解决方式: ...直接依赖优先于传递依赖,如果传递依赖的jar包版本冲突了,那么可以自己声明一个指定版本的依赖jar,即可解决冲突。 3、排出原则: 传递依赖冲突时,可以在不需要的jar的传递依赖...
  • spark与scala jar包版本冲突问题

    千次阅读 2016-10-26 11:44:03
    例如spark1.6.0是基于scala2.10.x的,如果用intellj创建基于scala2.11.x的项目,打包出来的jar包,用spark-submit运行spark任务时,会遇到NoSuchMethodError:scala.Predef$.ArrowAssoc异常。 例如代码里有下面这样...
  • 背景: 一开始mysql的依赖是直接加在父...一访问接口就会出现这个由于包版本过高导致的java.sql.SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required异常: java.sql.SQLNonTransientConnectionExc
  • Jar包冲突是老生常谈的问题,几乎每一个Java程序猿都不可避免地遇到过,并且也都能想到通常的原因一般是同一个Jar包由于maven传递依赖等原因被引进了多个不同的版本而导致,可采用依赖排除、依赖管理等常规方式来...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 84,262
精华内容 33,704
关键字:

jar包版本冲突

友情链接: class_top88_PDE.rar