網站首頁 編程語言 正文
問題描述
今日,遇到一個問題,在用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-03-26 Linux快速部署Redis_Redis
- 2023-02-01 深入分析C語言存儲類型與用戶空間內部分布_C 語言
- 2022-12-15 詳解Golang如何比較兩個slice是否相等_Golang
- 2022-05-27 C++左值與右值,右值引用,移動語義與完美轉發詳解_C 語言
- 2022-06-12 python數據處理詳情_python
- 2023-11-20 python實現ssh傳遞文件
- 2022-10-07 Android實現點擊圖片上傳SQLite數據庫_Android
- 2022-04-23 一起來了解一下C++的結構體?struct_C 語言
- 最近更新
-
- 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同步修改后的遠程分支