由于依赖冲突,导致idea中的程序打包至Linux上运行时报错

博客讲述了将Flink程序从IDEA运行到Linux环境时遇到的报错问题,原因是上传的jar包中的phoenix依赖包含了hadoop,与Linux上的hadoop依赖冲突。解决方法是通过打包插件排除所有org.apache.hadoop的依赖。同时,文章总结了可能出现此类问题的两种情况及其解决方案,并强调了排查依赖冲突的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、案例:

        程序在idea运行没问题,但打包至Linux上跑,出现如下报错

        错误看不太看懂 ,我翻译的是:flink和hadoop中都找不到一个文件系统去支持hdfs这个体系

2、错误原因:

        其实是上传的jar包中有依赖和Linux本地的依赖冲突了。

        我运行的是flink程序,其中我配置了flink能够读取hadoop lib下的jar包,而我上传jar包中存在phoenix的依赖,phoenix中有hadoop的依赖,导致程序读取到两份hadoop的jar包导致冲突报错!!

3、解决方法:

        使用打包插件排除hadoop有关的所有依赖

        注意:

        依赖的命名规则是 groupId:atrifactId:版本号 

        以上方法是排除groupId为org.apache.hadoop下的所有依赖

 4、总结:

        1、idea中运行没问题而打包到Linux上报错,可能原因有:

                1、idea中的依赖和Linux程序lib下的依赖重复,导致起了冲突,系统找不到

                        解决方法:排除(删掉)其中一方的依赖

                2、Linux无法检测到idea上传的某个依赖

                        解决方法:idea中不打包该依赖(使用provide修饰即可),在Linux上手动将依赖放入Linux程序的lib目录下

        2、具体报错的类型有:not found xxx,甚至是会报空指针!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值