日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

解決使用maven打jar包缺失依賴包問題

作者:FOX有愛 更新時間: 2022-05-17 編程語言

問題描述

今日,遇到一個問題,在用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打包的時候,并沒有把依賴包也打進去!

參考文章

https://www.cnblogs.com/chenmingming0225/p/13204247.htmlhttps://www.cnblogs.com/chenmingming0225/p/13204247.html

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

欄目分類
最近更新