maven shade
shade
包冲突,现在碰到这样一个问题,如下图,
- a依赖b,b依赖c的c1方法
- a依赖c的c2方法
- 但是c1.0没有c2方法,c2.0没有c1方法
原因
jvm在加载类时,只会根据包名去加载类,如果一个方法调用了一个类的两个版本,而这两个版本是互相冲突的话,就会抛异常NoSuchMehtodError
解决办法
maven-shade 把其中一个用shade改名,改名的类的包名会变,所以再加载两个不同方法时就是加载的两个不同的类,所以不会报错
<!-- shade-a: pom.xml -->
<dependencies><dependency><groupId>com.test</groupId><artifactId>shade-c</artifactId><version>2.0</version></dependency><dependency><groupId>com.test</groupId><artifactId>shade-b</artifactId><version>1.0</version></dependency>
</dependencies>
<!-- shade-b: pom.xml -->
<dependencies><dependency><groupId>com.test</groupId><artifactId>shade-c</artifactId><version>1.0</version></dependency>
</dependencies>
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>3.2.1</version><executions><execution><phase>package</phase><goals><goal>shade</goal></goals><configuration><relocations><relocation><pattern>com.test.shade-c</pattern><shadedPattern>shaded.com.test.shade-c</shadedPattern></relocation></relocations></configuration></execution><executions></plugin><plugins>
</build>
ref
解决jar包冲突新思路 - maven-shade-plugin
maven shade相关推荐
- [Apache Maven Shade Plugin] [example] [001] 官方例子:includes-excludes
链接地址:[Selecting Contents for Uber JAR](http://maven.apache.org/plugins/maven-shade-plugin/examples/i ...
- maven shade 插件的小插曲
前两天我们介绍了 maven 解决冲突的 shade 插件 https://blog.csdn.net/u012745499/article/details/122310575 然而, 昨天业务方反馈 ...
- Apache Maven Shade插件详解
Apache Maven项目提供的Shade插件,能够将Maven应用打包为超级的uber-jar(也称为fat jar,或shaded jar).即在打包的过程中,可以: 包含依赖库 重命名依赖库的 ...
- java插件不存在,java – Maven shade插件找不到’mainClass’异常?
有一个非常奇怪的构建与maven-shade-plugin:2.4.3在一个标准的maven项目中.执行maven package命令时,总是无法找到mainClass异常.我只是模拟一个maven- ...
- Maven的生命周期和maven-assembly-plugin插件使用
2019独角兽企业重金招聘Python工程师标准>>> 记住,运行任何一个阶段的时候,它前面的所有阶段都会被运行,这也就是为什么我们运行mvn install 的时候,代码会被编译, ...
- 使用Maven打包你的应用——maven-jar-plugin maven-assembly-plugin maven-shade-plugin
原文链接:https://www.dubby.cn/detail.html?id=9091 介绍maven-jar-plugin,maven-assembly-plugin和maven-shade-p ...
- 使用Maven构建Java项目
使用Maven构建Java项目 本指南将引导您使用Maven构建一个简单的Java项目. 你会建立什么 您将创建一个提供一天中时间的应用程序,然后使用Maven进行构建. 你需要什么 约15分钟 最喜 ...
- 如何使用Maven创建具有依赖项的可执行JAR?
我想将我的项目打包在一个可执行的JAR中进行分发. 如何使Maven项目将所有依赖项JAR打包到我的输出JAR中? #1楼 刘坚认为是对的. Maven依赖插件允许您扩展所有依赖,然后可以将其视为资源 ...
- Maven 高级玩法
实用技巧 Maven 提速 多线程 # 用 4 个线程构建,以及根据 CPU 核数每个核分配 1 个线程进行构建 $ mvn -T 4 clean install $ mvn -T 1C clean ...
最新文章
- Codeforces Round #520 (Div. 2)
- jenkins+gradle/maven+sonar+pipline
- android 获取存储卡,Android获取存储卡路径的方式
- SAP MB51物料凭证清单程序增强增加四个字段
- Java上机操作练习题-助力期末
- CSS3的background-size:可以设置高宽 百分比 最大大小 最小大小
- 王道408数据结构——第八章 排序
- 【Python学习】 - 如何在Spyder中弹出plot绘图窗口而不是在Console中绘图
- Failed to connect to 127.0.0.1 port 1080: Connection refused package:git
- PowerEdge服务器生命周期控制器:Lifecycle Controller
- crontrigger java,CronTrigger
- tf.Variable、tf.get_variable、tf.variable_scope、tf.name_scope、random、initializer
- 关闭centos6.7不必要的服务
- 计算机组成原理(白中英) 第二章 课后题答案
- JavaScript权威指南学习笔记(一)
- 查看局域网所有ip地址
- vscode通过扩展插件实现流程图绘制
- 2月29日,四年一遇的日子!
- windows server 2003 远程拨号服务器
- 130292015015-傅志彬-第1章作业
热门文章
- Socket、Tcp、Udp 概念区分
- [BX] 和 loop指令
- register,static,extern,const,typedef,volatile关键字
- linux gt txt内容为空,2gt;/dev/null和gt;/dev/null 2gt;amp;1和2gt;amp;1gt;/dev/null的区别...
- matlab梯度检测,Matlab:关于梯度的一阶导数边缘检测
- cf两边黑屏怎么解决win10_win10开机无限黑屏转圈重启解决方法
- 数据结构与算法 / 总章
- Cpp 对象模型探索 / 不能被继承的类
- c语言定义链式队列用菜单,数据结构之---C语言实现链式队列
- linux中256错误,YUM安装遭遇: [Errno 256] No more mirrors to try