shaded jar中包冲突定位

简介: 普通jar包冲突在maven依赖树中基本都可以定位到,shaded jar中不好直接定位,可通过class的url找出jar包名称,最终完成定位。

no such method Exception

通常遇到no such method Exception就是项目中某些包冲突导致,在idea中可以通过自带的“Show dependencies”或者“maven helper”插件来分析依赖树。但是对于打了fat jar、shaded jar的场景下就比较棘手了,可能在dependency里面根本找不到哪里冲突了,此时可利用类的jar包路径来定位到当前classloader加载的是那个包里面的类。

String className = "org.eclipse.jetty.server.session.SessionHandler";
        className = className.replace('.', '/');
        String resource = "/" + className + ".class";
        URL url = SessionHandler.class.getResource(resource);
        System.out.println(">>>url:" + url.getFile());
# >>>url:file:/C:/Users/xiaoyao/.m2/repository/com/foo/bar/foo-bar/1.0/foo-bar-1.0.jar!/org/eclipse/jetty/server/session/SessionHandler.class
相关文章
|
6月前
|
Java Maven
maven依赖原则以及jar包冲突
该文介绍了Maven依赖原则:最短路径优先,申明顺序优先和覆写优先。当有冲突时,Maven选择路径最短的版本,按POM中声明顺序加载,并且子POM的依赖优先于父POM。解决冲突最佳方式是通过`mvn dependency:tree`检查依赖树并调整POM文件中的坐标顺序。
129 2
|
6月前
|
Java Maven
maven jar 包冲突处理
maven jar 包冲突处理
55 0
|
Java Maven
【异常解决】为什么会产生jar包冲突,如何排查jar包冲突?
【异常解决】为什么会产生jar包冲突,如何排查jar包冲突?
257 0
|
6月前
|
Java 应用服务中间件 数据库连接
hibernate+struts2整合jar包冲突
hibernate+struts2整合jar包冲突
|
Java Maven 开发者
又遇到maven jar包冲突了,如何快速解决
又遇到maven jar包冲突了,如何快速解决
194 0
|
Java Maven
不会还在为jar包冲突发愁吧
在我们平时的开发过程中,常常会遇到引入各种不同的 jar 包,然后引发的 Maven 依赖冲突,今天我们来学习下如何使用 Maven 命令检测 pom.xml 中的重复依赖项。
83 0
页面404,后台 class not found,但是 jar 包可以定位到
页面404,后台 class not found,但是 jar 包可以定位到
|
Java 应用服务中间件 数据库连接
hibernate+struts2整合jar包冲突
前几天,在用Hibernate+Struts2做项目的时候遇到了一个很棘手的问题,jar包冲突!!!先亮一下错误:
|
Java 应用服务中间件 数据库连接
Maven项目中jar包冲突问题解决 导入jar包scope作用域的使用
Maven项目中jar包冲突问题解决 导入jar包scope作用域的使用
283 0
Maven项目中jar包冲突问题解决 导入jar包scope作用域的使用