`
iamzhongyong
  • 浏览: 797152 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

【原】java(maven工程)包冲突解决办法

    博客分类:
  • java
 
阅读更多

开发java应用,包冲突是经常遇见的,如何快速的定位冲突,并且解决十分重要。

下面通过工作中的一个例子来引出一些排查的常用工具。


(1)查看某一个方法是引用的那个包,可以在debug的时候通过反射中的这个方法看一下

例如查看CollectionUtils这个类的jar包的信息,可以这样:

CollectionUtils.class.getProtectionDomain().getCodeSource();


(2)如何查看maven工程中的jar包的情况?

在maven工程的父目录来执行这个命令,显示全部工程的包的信息

mvn compile dependency:tree

可以通过">"来重定向到一个文件,方便来进行查看。

如果知道特定的子module,则可以进入到特定的module,来进行打印依赖树。



上面的例子。在web这个module下面,果然没有看到commons-collections这个jar包。

所以问题就定位了呵呵。



(3)如何解决冲突?


一般情况下问题定位了就能够很快的解决冲突了。

上述情况是因为没有引入jar包导致的,解决办法,直接在pom文件中加入jar包即可,当然这是最简单的包问题了。

其余的一般可以通过修改pom文件来进行解决,下面就pom文件解决冲突的几类常见方法说明一下。

 

maven的冲突解决需要对于maven的依赖机制了解比较深入,这样处理问题才能游刃有余,推荐一个博客,上面的文章很好,可以学习一下。

 

http://www.juvenxu.com/

 

还有博客作者的书《maven实战》上面写的很详细,对于maven入门以及深入了解很有帮助。

 

(4)线上的话如何来看代码的类的jar包的信息呢?

 

上面的一些方法能够解决大部分的问题,但是如果是线上出现这种情况,或者上面的方法没有办法查看到,那如何处理呢。

不用担心,公司的一位大神撒迦写了一个类,来搞定这些。

 

博客地址在这里:http://rednaxelafx.iteye.com/blog/1295944

 

代码和执行命令都在这里,有了这个之后,线上排查问题就能够非常方便了呵呵。

 

https://gist.github.com/1441625#file_command_prompt

 

 

 

 

 

分享到:
评论

相关推荐

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

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

    尚硅谷Java视频教程_Maven视频

    通过jsp-api体验jar包之间的冲突 · 25.导入Maven工程 · 26.第三个Maven工程 · 27.依赖的传递性 · 28.依赖的排除 · 29.依赖的原则说明 · 30.依赖的原则测试 · 31.统一管理依赖的版本号 · 32.继承 ·...

    项目管理与SSM框架——Maven学习与案例练习

    此文章包含Maven介绍与安装、Maven在工程开发中的相关配置、Maven如何进行工程测试、Maven的以来冲突调节原则、Maven的聚合开发,以及用一个简单的实操案例对Maven进行练习。 适用于任何学习项目管理与SSM框架中,...

    findConflicts:冲突的Maven插件(查找Maven项目冲突的Maven插件)

    它可以找到你maven工程中各种冲突(jar冲突,类冲突,日志冲突,版本冲突)。我敢打赌,我们一定知道过日志冲突。我们都知道,java的日志包多种,象log4j,logback,slf4j,通用日志,log4j-over-slf4j,slf4j-over-...

    Java全栈工程师-Maven基础

    本课程讲解Maven的项目构建、依赖传递、依赖冲突等本课程讲解Maven入门基础知识

    Java与Kotlin开发实用工具包.zip

    通过集成Git、SVN等版本控制系统,支持团队成员间的代码共享、分支管理、合并请求和冲突解决。 可视化设计与原型制作: 对于UI/UX设计,有界面设计工具,如Sketch、Adobe XD,可以帮助设计师快速构建应用程序...

    xmljava系统源码-mountain:山

    xml java系统源码 mountain 工程 后端工程启动后访问URL: ...Extension(Java管理应用扩展),默认是true,导致冲突 解决方法,在application-xxxx.properties文件中配置下边属性,进行区分: spring.

    微信开发工具包weixin sdk for Java.zip

    通过集成Git、SVN等版本控制系统,支持团队成员间的代码共享、分支管理、合并请求和冲突解决。 可视化设计与原型制作: 对于UI/UX设计,有界面设计工具,如Sketch、Adobe XD,可以帮助设计师快速构建应用程序...

    唯品会Java开发手册.zip

    通过集成Git、SVN等版本控制系统,支持团队成员间的代码共享、分支管理、合并请求和冲突解决。 可视化设计与原型制作: 对于UI/UX设计,有界面设计工具,如Sketch、Adobe XD,可以帮助设计师快速构建应用程序...

    工具箱(java开发中常用工具类,web工程中常用的Filter等).zip

    通过集成Git、SVN等版本控制系统,支持团队成员间的代码共享、分支管理、合并请求和冲突解决。 可视化设计与原型制作: 对于UI/UX设计,有界面设计工具,如Sketch、Adobe XD,可以帮助设计师快速构建应用程序...

    java 开发工具集,包含网络,并发逻辑处理,csp队列,热更新加载器.zip

    通过集成Git、SVN等版本控制系统,支持团队成员间的代码共享、分支管理、合并请求和冲突解决。 可视化设计与原型制作: 对于UI/UX设计,有界面设计工具,如Sketch、Adobe XD,可以帮助设计师快速构建应用程序...

    java版商城源码下载-Flink-Analysis-of-Electronic-Commerce:Flink电商指标分析系统

    java版商城源码下载 4、工程结构 5、上报服务系统 5.1、Spring Boot 上报服务系统是一个 Java Web 工程,为了快速开发 web 项目,采用 JavaWeb 最流行的 Spring Boot。 Spring Boot 是一个基于 Spring 之上的快速...

    android,java必备知识,面试知识,工作学习记录.zip

    通过集成Git、SVN等版本控制系统,支持团队成员间的代码共享、分支管理、合并请求和冲突解决。 可视化设计与原型制作: 对于UI/UX设计,有界面设计工具,如Sketch、Adobe XD,可以帮助设计师快速构建应用程序...

    Java开发工具,自动生成api文档.zip

    通过集成Git、SVN等版本控制系统,支持团队成员间的代码共享、分支管理、合并请求和冲突解决。 可视化设计与原型制作: 对于UI/UX设计,有界面设计工具,如Sketch、Adobe XD,可以帮助设计师快速构建应用程序...

    goniub是一个java爬虫工具库.zip

    通过集成Git、SVN等版本控制系统,支持团队成员间的代码共享、分支管理、合并请求和冲突解决。 可视化设计与原型制作: 对于UI/UX设计,有界面设计工具,如Sketch、Adobe XD,可以帮助设计师快速构建应用程序...

    Netty教程 - Netty是一个java开源框架.zip

    通过集成Git、SVN等版本控制系统,支持团队成员间的代码共享、分支管理、合并请求和冲突解决。 可视化设计与原型制作: 对于UI/UX设计,有界面设计工具,如Sketch、Adobe XD,可以帮助设计师快速构建应用程序...

    CrackDb是一款Java开发的数据库账号密码破解工具.zip

    通过集成Git、SVN等版本控制系统,支持团队成员间的代码共享、分支管理、合并请求和冲突解决。 可视化设计与原型制作: 对于UI/UX设计,有界面设计工具,如Sketch、Adobe XD,可以帮助设计师快速构建应用程序...

    URULE是一款基于RETE算法的纯Java规则引擎.zip

    通过集成Git、SVN等版本控制系统,支持团队成员间的代码共享、分支管理、合并请求和冲突解决。 可视化设计与原型制作: 对于UI/UX设计,有界面设计工具,如Sketch、Adobe XD,可以帮助设计师快速构建应用程序...

    Java开发的截图工具,支持接入其它GUI项目,支持选取拖动,支持放大镜。.zip

    通过集成Git、SVN等版本控制系统,支持团队成员间的代码共享、分支管理、合并请求和冲突解决。 可视化设计与原型制作: 对于UI/UX设计,有界面设计工具,如Sketch、Adobe XD,可以帮助设计师快速构建应用程序...

    Java后端开发库,涵盖:常用工具类、SPI扩展、分布式锁、限流、分布式链路追踪等。.zip

    通过集成Git、SVN等版本控制系统,支持团队成员间的代码共享、分支管理、合并请求和冲突解决。 可视化设计与原型制作: 对于UI/UX设计,有界面设计工具,如Sketch、Adobe XD,可以帮助设计师快速构建应用程序...

Global site tag (gtag.js) - Google Analytics