網站首頁 編程語言 正文
問題描述
今日,遇到一個問題,在用IDEA寫好Java 代碼之后,在IDEA運行沒有問題,但是用maven打成jar包再運行的時候,卻報缺失依賴包的情況。例如下面情況
pom.xml配置
4.0.0
org.example
bigdata_project
1.0-SNAPSHOT
8
8
org.apache.hadoop
hadoop-hdfs
2.10.1
org.apache.hadoop
hadoop-common
2.10.1
org.apache.hadoop
hadoop-mapreduce-client-core
2.10.1
org.apache.hadoop
hadoop-client
2.10.1
junit
junit
4.12
test
org.apache.hive
hive-exec
3.1.2
org.apache.kafka
kafka-clients
3.1.0
org.apache.kafka
kafka-streams
3.1.0
settings.xml配置
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
*
IDEA配置
?其余都是默認配置
IDEA運行代碼正常:
使用maven工具點擊 clean 清除,然后點擊 install 生成 jar包
打開cmd命令行界面,運行jar包某個類,出現異常,如下圖
問題分析以及解決辦法
這時候,如果你將這個jar包解壓,你會發現,除了自己寫的代碼,并沒有把需要依賴的包打進去,jar包里面空空如也!可以判定,使用maven打包的時候,并沒有把依賴包也打進去!
參考文章
maven-shade-plugin?插件介紹
maven-shade-plugin介紹及使用_庫昊天的博客-CSDN博客_maven maven-shade-plugin基本功能maven-shade-plugin提供了兩大基本功能:將依賴的jar包打包到當前jar包(常規打包是不會將所依賴jar包打進來的);對依賴的jar包進行重命名(用于類的隔離);Goals maven-shade-plugin 只存在一個goal shade:shade,需要將其綁定到 phase package 上,使用框架如下:<project>...https://blog.csdn.net/yangguosb/article/details/80619481
解決辦法,需要在pom.xml文件添加 plugin? java編譯插件,maven的編譯插件有很多,我添加的是maven-shade-plugin插件,代碼如下
4.0.0
org.example
bigdata_project
1.0-SNAPSHOT
8
8
org.apache.hadoop
hadoop-hdfs
2.10.1
org.apache.hadoop
hadoop-common
2.10.1
org.apache.hadoop
hadoop-mapreduce-client-core
2.10.1
org.apache.hadoop
hadoop-client
2.10.1
junit
junit
4.12
test
org.apache.hive
hive-exec
3.1.2
org.apache.kafka
kafka-clients
3.1.0
org.apache.kafka
kafka-streams
3.1.0
org.apache.maven.plugins
maven-shade-plugin
3.1.0
package
shade
*:*
META-INF/*.SF
META-INF/*.DSA
META-INF/*.RSA
cn.kafkademo.ProducerDemo1
注意需要填寫mainClass?和 excludes?否則會報錯,如下圖
然后再使用maven工具點擊 clean 清除,點擊 install 生成 jar包
使用cmd打開命令行,運行jar包,就能正常運行了
原文鏈接:https://blog.csdn.net/qq_15083919/article/details/124774995
相關推薦
- 2022-01-29 調用存儲命令:將sqlserver表中的數據導出sql語句或生成insert into語句
- 2022-07-07 詳解Git?的?rebase?命令使用方法_相關技巧
- 2022-07-15 服務器間如何實現文件共享_服務器其它
- 2022-04-28 Python可視化學習之seaborn繪制矩陣圖詳解_python
- 2022-08-21 Caffe卷積神經網絡solver及其配置詳解_python
- 2024-03-24 MyBatis-Plus QueryWrapper及LambdaQueryWrapper的使用
- 2022-11-22 Android?RecyclerView使用入門介紹_Android
- 2023-06-19 python中time模塊指定格式時間字符串轉為時間戳_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支