Maven打包之解決沒(méi)有依賴(lài)jar包問(wèn)題及分析
問(wèn)題
最近半年多做得項(xiàng)目都是springboot項(xiàng)目,今晚寫(xiě)了個(gè)FTPServer小軟件,通過(guò)Maven打包之后jar文件只有20KB。
通過(guò)命令運(yùn)行后,提示沒(méi)有指定運(yùn)行的Main程序。
出現(xiàn)錯(cuò)誤信息:java.lang.NoClassDefFoundError 和 ClassNotFoundException。
原因分析
jar文件只有20KB。
明顯不對(duì),打開(kāi)一看里面缺少依賴(lài)的jar包。
解決辦法
<build>
<plugins>
<plugin>
<!--<groupId>org.apache.maven.plugins</groupId>-->
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin </artifactId>
<configuration>
<descriptorRefs>
<!-- 此處填寫(xiě)打包后jar包后添加的標(biāo)識(shí) -->
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<!-- 此處填寫(xiě)程序的主入口(main方法) -->
<mainClass>com.liuyifen.Start.main</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>總結(jié)
maven打包時(shí),默認(rèn)不會(huì)將第三方依賴(lài)包打進(jìn)來(lái)??梢栽趐om.xml中添加maven-assembly插件實(shí)現(xiàn)… 打出的包里 xxxx-with-dependencies.jar 就是包含依賴(lài)包的。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- 使用maven-assembly-plugin如何將system 依賴(lài)范圍的jar以class 方式打包進(jìn) jar包中
- Maven pom.xml 添加本地jar包依賴(lài)以及打包方法
- Maven實(shí)現(xiàn)把項(xiàng)目依賴(lài)的所有jar包都打到同一個(gè)jar中
- 通過(guò)Maven下載依賴(lài)Jar包的流程分享
- maven依賴(lài)jar包時(shí)版本沖突的解決方案
- Maven項(xiàng)目如何查找jar包是由哪個(gè)依賴(lài)引入的
- maven無(wú)法自動(dòng)導(dǎo)入依賴(lài)jar包解決方式
相關(guān)文章
springboot服務(wù)正常啟動(dòng)之后,訪問(wèn)服務(wù)url無(wú)響應(yīng)問(wèn)題及解決
這篇文章主要介紹了springboot服務(wù)正常啟動(dòng)之后,訪問(wèn)服務(wù)url無(wú)響應(yīng)問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
淺談MyBatis3 DynamicSql風(fēng)格語(yǔ)法使用指南
這篇文章主要介紹了淺談MyBatis3 DynamicSql風(fēng)格語(yǔ)法使用指南,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
如何使用IDEA2022.1?創(chuàng)建Spring?Boot項(xiàng)目
這篇文章主要介紹了如何使用IDEA2022.1?創(chuàng)建Spring?Boot項(xiàng)目,大家在使用idea開(kāi)發(fā)工具時(shí)發(fā)現(xiàn)給以往的版本略微的不同,細(xì)心的小編在此記錄下,需要的朋友可以參考下2022-08-08
詳解Spring緩存注解@Cacheable,@CachePut , @CacheEvict使用
這篇文章主要介紹了詳解Spring緩存注解@Cacheable,@CachePut , @CacheEvict使用,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-05-05
SpringBoot?ApplicationContext接口深入分析
ApplicationContext是Spring應(yīng)用程序中的中央接口,由于繼承了多個(gè)組件,使得ApplicationContext擁有了許多Spring的核心功能,如獲取bean組件,注冊(cè)監(jiān)聽(tīng)事件,加載資源文件等2022-11-11
Java中this關(guān)鍵字的4種用法詳解(附常見(jiàn)面試題)
在Java的編程世界里,this關(guān)鍵字宛如一把神奇的鑰匙,看似簡(jiǎn)單,卻蘊(yùn)含著強(qiáng)大的功能,這篇文章主要介紹了Java中this關(guān)鍵字的4種用法的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-06-06
Java數(shù)據(jù)結(jié)構(gòu)之隊(duì)列示例詳解
隊(duì)列是一種線性數(shù)據(jù)結(jié)構(gòu),它遵循先進(jìn)先出或后近后出的原則,隊(duì)列允許在一端插入元素,另一端刪除元素,這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)之隊(duì)列的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-12-12
基于mybatis高級(jí)映射多對(duì)多查詢(xún)的實(shí)現(xiàn)
下面小編就為大家?guī)?lái)一篇基于mybatis高級(jí)映射多對(duì)多查詢(xún)的實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10
Java多種方法實(shí)現(xiàn)合并多個(gè)list對(duì)象列表
Java編程中,合并多個(gè)列表對(duì)象可以通過(guò)Stream?API或傳統(tǒng)循環(huán)方式實(shí)現(xiàn),使用Stream?API合并時(shí),利用flatMap方法將嵌套的List展平,再通過(guò)collect方法收集成一個(gè)新的列表,傳統(tǒng)循環(huán)則通過(guò)創(chuàng)建一個(gè)空的ArrayList,并通過(guò)遍歷每個(gè)列表將元素添加進(jìn)去2024-09-09

