運(yùn)行Jar包出現(xiàn)提示xxx中沒有主清單屬性報錯問題解決方法
推薦閱讀:
運(yùn)行Jar包出現(xiàn):xxx中沒有主清單屬性報錯
1、項(xiàng)目打好jar包時,使用命令運(yùn)行jar包:
java -jar xxx.jar
出現(xiàn)報錯:xxx中沒有主清單屬性
解決辦法:親測有用
在pom.xml配置中,加上以下配置:
<build>
<!--打包成jar包時的名字-->
<finalName>xxxTest</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>再打包運(yùn)行時,成功輸出日志
解決運(yùn)行jar包時報錯“沒有主清單屬性“以及丟失依賴jar包的問題
問題描述

原因描述
Maven 打包時默認(rèn)情況下不會將第三方依賴打包進(jìn)去是因?yàn)?Maven 遵循了一種依賴管理的原則,即將項(xiàng)目與其依賴庫(第三方庫)分開管理。這樣做有以下幾個優(yōu)點(diǎn):
1.減小打包體積:如果所有的第三方依賴都包含在打包文件中,將會導(dǎo)致最終的構(gòu)建產(chǎn)物巨大,增加部署和傳輸?shù)某杀?。而只打包?xiàng)目本身的代碼和資源,可以顯著減小生成的可執(zhí)行文件的大小。
2.依賴共享與復(fù)用:Maven 使用中央倉庫來存儲和管理各種開源庫,這些庫可以被多個項(xiàng)目共享和復(fù)用。通過在項(xiàng)目的 pom.xml 文件中聲明依賴,Maven 可以自動下載所需的庫文件,確保項(xiàng)目構(gòu)建所依賴的庫的版本一致性,并在構(gòu)建過程中自動解決依賴關(guān)系。
3.簡化維護(hù)和升級:由于第三方依賴獨(dú)立于項(xiàng)目進(jìn)行管理,并且通過 Maven 的依賴管理機(jī)制進(jìn)行引入和更新,當(dāng)需要升級某個第三方庫的版本時,只需修改項(xiàng)目的 pom.xml 文件中的相應(yīng)依賴版本號,而無需手動替換庫文件或修改代碼。
盡管 Maven 默認(rèn)不會將第三方依賴打包進(jìn)可執(zhí)行文件中,但你仍然可以通過 Maven 的插件來實(shí)現(xiàn)將依賴打包到可執(zhí)行文件中的需求。例如,通過 Maven Shade 插件或者SpringBoot的Maven插件可以創(chuàng)建一個可執(zhí)行 JAR 文件,并將所有依賴庫打包為一個可執(zhí)行的大 JAR 文件
在一些情況下,即使沒有在 Maven 插件配置中顯式指定主類,在打包時也可以成功生成包含主清單屬性的可執(zhí)行 JAR 文件。這是因?yàn)樵谀承┣闆r下,Maven 可以自動檢測到項(xiàng)目的入口點(diǎn),并將其作為默認(rèn)的主類。
然而,這種自動檢測主類的行為并不是所有情況下都適用。具體是否需要顯式指定主類取決于你的項(xiàng)目結(jié)構(gòu)和依賴關(guān)系。如果 Maven 無法自動檢測到主類或者檢測到的主類不是你希望的,最常見的就是你的引導(dǎo)類名不規(guī)范導(dǎo)致如"Starter"(應(yīng)該是StarterApplication),就會出現(xiàn)"沒有主清單屬性"的錯誤。
因此,為了保證項(xiàng)目的可靠性和一致性,建議在 Maven 插件配置中顯式指定主類。這樣可以避免潛在的問題,并確保打包后的可執(zhí)行 JAR 文件始終具有正確的主清單屬性。
解決方案:
1:規(guī)范書寫
2 明確聲明主類名以及打包方式
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<mainClass>引導(dǎo)類全類名</mainClass>
</configuration>
</plugin>
</plugins>
</build>到此這篇關(guān)于運(yùn)行Jar包出現(xiàn):xxx中沒有主清單屬性報錯的文章就介紹到這了,更多相關(guān)xxx中沒有主清單屬性報錯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java基于百度天氣API實(shí)現(xiàn)天氣實(shí)時獲取
這篇文章主要為大家詳細(xì)介紹了Java如何基于百度天氣API實(shí)現(xiàn)天氣實(shí)時獲取功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2026-03-03
SpringBoot多租戶配置與實(shí)現(xiàn)示例
本文詳細(xì)介紹了在SpringBoot中實(shí)現(xiàn)多租戶架構(gòu)的方法和步驟,包括配置數(shù)據(jù)源、Hibernate攔截器、租戶解析器等,以共享數(shù)據(jù)庫、共享數(shù)據(jù)表的方式,確保數(shù)據(jù)隔離和安全性,感興趣的可以了解一下2024-09-09
MyBatis學(xué)習(xí)教程(八)-Mybatis3.x與Spring4.x整合圖文詳解
這篇文章主要介紹了MyBatis學(xué)習(xí)教程(八)-Mybatis3.x與Spring4.x整合圖文詳解的相關(guān)資料,需要的朋友可以參考下2016-05-05
Springboot配置文件內(nèi)容加密代碼實(shí)例
這篇文章主要介紹了Springboot配置文件內(nèi)容加密代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11
使用SpringBoot進(jìn)行身份驗(yàn)證和授權(quán)的示例詳解
在廣闊的 Web 開發(fā)世界中,身份驗(yàn)證是每個數(shù)字領(lǐng)域的守護(hù)者,在本教程中,我們將了解如何以本機(jī)方式保護(hù)、驗(yàn)證和授權(quán) Spring-Boot 應(yīng)用程序的用戶,并遵循框架的良好實(shí)踐,希望對大家有所幫助2023-11-11
java Socket實(shí)現(xiàn)多人群聊與私聊功能
這篇文章主要為大家詳細(xì)介紹了java Socket實(shí)現(xiàn)多人群聊與私聊功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-07-07

