`

maven 版本依赖冲突的发现与解决

 
阅读更多

 

        maven版本依赖提供了方便的同时,有时候也会冒出一些诡异的问题。此次遇到的问题,比较简单,旨在记录,欢迎拍砖。

   

     一、问题背景

       由于使用了jekenis进行代码部署,所以maven的编译打包都会在这上面完成。在描述具体问题之前,我想先说一下打包的规则:项目A对外提供服务,A发布的包就会对外提供两个包(一个是api包即暴露的接口,一个是client包,封装了对api包的调用,将API包里面需要配置的服务端接口信息揉在一起。这样做的好处就是对客户端屏蔽zk上具体的接口信息)现在的问题是B项目依赖于A项目的client包,client包版本比较低,所以需要做升级。

 

     二、问题描述    

       A项目中增加了methodA()方法,B项目需要升级client包,由于历史原因,api包的版本和client包版本不一致,此次升级顺便统一版本。当开心的提交完代码和单元测试,就等着jekenis构建了,结果跑单元测试的时候,发现如下问题:

      

 

      看到如此画面,相信看异常堆栈已经能发现问题,缺少方法呗,但是明明写了呀,而且本地跑单元测试没问题。然后觉得可能是导包导的不对,但是看pom文件只依赖于client包,client包已经升级了,为什么还有问题

 

    三、定位问题

        带着疑问我怀疑是jekenis的问题(当然中间有很多弯路,加调试信息),我打开了jekenis的包依赖页面(没注意过?选择构建的项目,点进去后,有个See Fingerprints ,然后打开就是了)我搜索那个client包,发现旁边的api包版本仍然比较低,什么鬼,低版本的api包里肯定没有那个方法,然后点详细信息链接到A项目中去了,然后回到A项目查看依赖,改成新版本号后(下面的snapshot不规范,已修正),然并卵,怀疑是jekenis查找仓库仍然找的是老包,于是乎就想去jekenis对应的maven库里把相关的包都rm -rf 了,悲剧的是我还没有那台机器权限蠢话。。。。。

 

   

    四、解决方案 

         既然已经猜到是包不对了,下面就是删包了,回想一下,jekenis是从私服上拉包,那在私服上直接干掉这个版本不就更新了,最后就这样给搞定了。不过还有其他一系列环境问题,不在此次讨论范围内,先不描述了

 

  • 大小: 177.9 KB
  • 大小: 48.2 KB
0
4
分享到:
评论
2 楼 carlosfu 2016-04-15  
找xiang哥啊。
1 楼 string2020 2016-04-11  
http://blog.csdn.net/mn960mn/article/category/2300763

相关推荐

    ​实现maven项目中多版本依赖兼容使用解决方案

    既能不升级jar包又能使用高版本依赖同时还不造成冲突的完美解决方案

    MavenRunHelper maven解决依赖冲突插件

    MavenRunHelper插件的作用是帮助用户更轻松地在InteliJ IDEA中运行maven项目,它可以自动配置Maven运行环境,并且可以自动识别 maven项目的依赖关系,从而节省时间和精力。

    idea插件一键解决maven依赖冲突

    本插件参考58开源插件MavenManager,采用dependencyManagement方式,一键解决Java开发过程中使用maven作为依赖管理时的jar包依赖冲突问题,相比MavenHelper更加省时省力,jar包版本采用最新版本号原则

    详解maven依赖冲突以及解决方法

    主要介绍了maven依赖冲突以及解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    试试 IDEA 解决 Maven 依赖冲突的高能神器.docx

    试试 IDEA 解决 Maven 依赖冲突的高能神器

    maven依赖冲突插件 MavenHelper-4.26.0

    maven依赖冲突插件:idea依赖很多的时候 可以使用插件帮我们快速查看冲突的依赖 并快速的解决依赖

    cleanLastUpdated maven依赖冲突清理.zip

    导入maven仓库的时候总是提示jar文件导入不成功的错误,后经过分析,发现不成功的文件夹里面存在lastUpdate后缀名的文件。 用途:删除lastupdated脚本文件 注:路径需要自己用文本编辑器打开后进行修改

    IDEA+Maven导入新包JDK版本冲突问题

    引入新的依赖包代码报-JDK版本冲突!解决

    多种方法解决Maven Jar包冲突引入后报错问题.docx

    Maven的Jar包冲突问题,经常出现的场景为: 本地运行报NoSuchMethodError,ClassNotFoundException。明明在依赖里有这个Jar包啊。...定位冲突以及解决Jar包冲突的几个简单技巧 如何写一个干净依赖关系的POM文件

    MavenRunHelper 各版本集合

    使用maven管理依赖包时会遇到依赖冲突的问题,解决起来非常麻烦。MavenRunHelper插件作为解决冲突的利器,能够高效率的展示出冲突列表,快速解决冲突问题。由于网络等问题,常常无法下载插件。现提供IntelliI IDEA ...

    maven冲突jar包清理脚本

    构建maven工程时pom.xml中引入依赖时有红色字体,setting处理了,也将jar包的版本号都试了一遍,还是没解决,后来请教大牛,原来是没连网,maven工程加载了一部分jar包,连网之后自动下载的jar包跟之前的冲突,用这...

    maven 隐式依赖引起的包冲突解决办法

    主要介绍了maven 隐式依赖引起的包冲突解决办法的相关资料,需要的朋友可以参考下

    easyExcel解决poi冲突更改内使用路劲.rar

    由于现在版本需要使用poi3.17以上版本,对项目本身有poi3.16的很不友好,jar包冲突,通过修改jar包路径达到目的,解决jar包冲突

    MavenHelper.zip

    好用的idea编辑器Maven插件,用于快速查找依赖冲突,解决依赖冲突问题。

    Windows下配置好的apache-maven-3.6.1

    4、改进了依赖冲突解决机制:Maven 3.6 通过改进依赖冲突解决机制,可以更好地处理项目中的依赖关系,并自动解决冲突。 5、支持 JDK 11+:Maven 3.6 支持最新的 Java 版本,包括 JDK 11 及以上版本。这意味着您可以...

    MavenHelper

    好用的idea编辑器Maven插件,用于快速查找依赖冲突,解决依赖冲突问题。

    SSM框架(基于maven,IDEA)

    自己搭建的SSM基本框架,基于maven,基于IDEA开发工具,里面的配置文件已经写好,jar包版本搭配较佳,不会出现冲突,请使用者更改数据库连接配置以及maven仓库地址。

    maven_部分_源码和思维导图

    01课_maven_初步02课_maven_初步_思路讲解和archetype的使用和eclipse的安装03课_maven_依赖_环境搭建和依赖的范围04课_maven_依赖_传递性依赖的冲突的问题

    尚硅谷Java视频教程_Maven视频

    · 01.课件、源码 · 02.目前掌握的技术 · 03.生产环境下开发对Maven的需求 · 04.运行时环境 · 05....统一管理依赖的版本号 · 32.继承 · 33.聚合 · 34.Web工程的自动部署 · 35.查找依赖信息的网站

Global site tag (gtag.js) - Google Analytics