maven:又遇到maven jar包冲突了?比较常见的处理方法及避坑

分类: 365bet客户端下载 时间: 2026-01-16 02:15:13 作者: admin 阅读: 2965

简介

在使用Maven时,有时会遇到jar包冲突的问题,也就是多个依赖中包含了同名的jar包,在编译或运行时会导致异常。

解决maven jar包冲突的方法

1、利用maven的Exclusions功能排除依赖

2、利用maven的scope功能,限制依赖的使用范围

控制 dependency(依赖)元素的使用范围。通俗的讲,就是控制 Jar 包在哪些范围被加载和使用。这个范围包括,编译、测试、运行,并且还可以加上是否被打入包中。

Scope的作用域范围包括compile、test、provided、runtime、system、import。

上面的2种解决方法,很容易解决编译时的问题,但是运行时可能导致类或方法找不到的问题。

3、利用maven-shade-plugin的重定位类(Relocating Classes)功能,把依赖的第三方jar包重命名后打包到项目的jar包

比如Flink的大多数依赖项,如guava、netty、jackson等,都被Flink的维护人员通过重定位类维护。

这种解决方案比较实用,但是很难解决第三方依赖之间的冲突。

4、类隔离策略

为了解决运行时类冲突,很多技术都实现了类隔离策略,比如大数据框架Flink、蚂蚁金服的SOFAArk、tomcat等。

比如tomcat为了实现运行时隔离采用的类加载策略:

小结

如果又遇到maven jar包冲突了,可以使用上面比较常见的这几种处理方法来解决,每种解决方案都有其适用场景。

相关文章

假的网站365怎么看

让女人张腿的正确姿势,你一定不知道!

假的网站365怎么看

杭州最有生命力的“片儿川”、“拌川”,为什么都叫“川”?

365bet客户端下载

为什么狗会把脑袋歪向一边?