上周发生了一件十分不幸的事,就是之前依靠这篇博文进行的依赖冲突解决方案失灵了,又开始爆No Such类似的error,这次我可没有心情再一点点的排查了,直接寄出大杀器maven helper。maven helper 是一款idea的插件。
Step1: 下载maven helper 插件。

Step2:插件安装完,打开pom文件。可以看到左下角有一个dependency analyzer。

Step3:查看冲突

Step4:排除冲突的依赖,这一点在maven helper里面特别方便。
点击右边的冲突类,使用鼠标右键点击,会跳出来一个页面,这个时候选择EXCLUDE就可以。

更新分割线;
---------------------------------------------------------------------------------------------------------------------------------
一、Flink任务提交集群问题描述
本文的背景是编程语言使用Scala,Flink程序提交的方式是Per-Job Cluster Mode,Flink程序打包形式是采用胖包打包。
Flink程序Jar包提交的过程中,遇到的问题有:
- NoSuchMethodError
- Could not resolve ResourceManager address akka....
- ClassNotFoundException
- NoClassDefFoundError
上述的所有问题的根源都是maven的pom信息填写不正确,下面具体情况进行具体分析。
二、异常情况分析

2.1 NoSuchMethodError 和NoClassDefFoundError分析
这个异常就是找不到特定方法,这种异常的造成有两个原因。
1、有两个名字和引用位置都相同的类,这就导致了JVM对类进行加载的时候,找不到具体要加载哪个类,有可能同一个Jar包存在多个版本。

2、如果是提交到集群的话,那么极有可能有可能就是程序打包的时候,没有将需要的类打入到Jar包里面。
原因1的解决方案和方法:
使用Idea查看同名引用的类有哪些,找到其对应的Jar包。
在Pom文件中剔除掉冲突的Jar包(仅作为举例说明,按实际需求来就OK)
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<exclusions>
<exclusion>
<groupI

本文讲述了在Flink任务部署中遇到的依赖冲突问题,如何通过MavenHelper插件排查并排除冲突,以及如何配置POM文件确保完整打包和正确引用,以避免 NoSuchMethodError、ClassNotFoundException等问题。
最低0.47元/天 解锁文章
6704

被折叠的 条评论
为什么被折叠?



