maven打包失敗踩坑的解決方式詳解
Maven打包失敗原因總結(jié)如下:
失敗原因1:無法使用spring-boot-maven-plugin插件
使用spring-boot-maven-plugin插件可以創(chuàng)建一個可執(zhí)行的JAR應用程序,前提是應用程序的parent為spring-boot-starter-parent。
需要添加parent的包spring-boot-starter-parent
<!-- 版本選當時的版本 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.6.RELEASE</version> <relativePath/> </parent>
在多模塊依賴時,若parent包不是的spring-boot-starter-parent,而是自己定義的包,則應該在插件中添加如下配置:
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin>
失敗原因2:包無法被依賴
根據(jù)官網(wǎng)的說法,直接生成的包是可執(zhí)行的jar包,可執(zhí)行jar包無法被依賴。
通過解壓縮jar包,可以看到可執(zhí)行的jar包有BOOT-INF和META-INF文件夾,可被依賴的jar包無BOOT-INF文件夾,只含有META-INF文件夾。
通過以下配置生成兩個jar包,可以被依賴。
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <classifier>exec</classifier> </configuration> </plugin> </plugins> </build>
報錯:程序包xxx不存在!
失敗原因3:在子模塊中執(zhí)行打包命令,而不是執(zhí)行的父模塊的插件
例如:各模塊的依賴結(jié)構(gòu)如下
- generic-admin //管理員模塊
- generic-common //公共模塊
- generic-security //安全模塊
- generic-pom //父模塊
管理員模塊依賴安全模塊,安全模塊依賴公共模塊,他們都有父模塊。
有的人在子模塊中也添加了插件,若在子模塊中執(zhí)行打包命令,只能打包單獨的模塊,會出現(xiàn)程序包不存在的報錯。
<!--插件配置--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin>
正確的做法:應該在父模塊執(zhí)行打包命令!
插件配置如下:
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <classifier>exec</classifier> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin>
最后,生成jar包后,執(zhí)行命令啟動
nohup java -jar xxx.jar &
總結(jié)
到此這篇關(guān)于maven打包失敗踩坑的解決方式的文章就介紹到這了,更多相關(guān)maven打包失敗解決內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
jdk中動態(tài)代理異常處理分析:UndeclaredThrowableException
最近在工作中遇到了報UndeclaredThrowableException的錯誤,通過查找相關(guān)的資料,終于解決了,所以這篇文章主要給大家介紹了關(guān)于jdk中動態(tài)代理異常處理分析:UndeclaredThrowableException的相關(guān)資料,需要的朋友可以參考下2018-04-04Spring?boot?運用策略模式實現(xiàn)避免多次使用if的操作代碼
這篇文章主要介紹了Spring?boot?運用策略模式實現(xiàn),避免多次使用if,使用策略模式后,新加一種支付策略時,只需要在策略枚舉中添加新加的策略信息,外加一個策略類即可,而不再需要添加新的if判斷,需要的朋友可以參考下2022-08-08淺談@RequestParam(required = true)的誤區(qū)
這篇文章主要介紹了@RequestParam(required = true)的誤區(qū),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11還在用if(obj!=null)做非空判斷,帶你快速上手Optional
這篇文章主要介紹了還在用if(obj!=null)做非空判斷,帶你快速上手Optional,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-05-05Java中使用ConcurrentHashMap實現(xiàn)線程安全的Map
在Java中,ConcurrentHashMap是一種線程安全的哈希表,可用于實現(xiàn)多線程環(huán)境下的Map操作。它支持高并發(fā)的讀寫操作,通過分段鎖的方式實現(xiàn)線程安全,同時提供了一些高級功能,比如迭代器弱一致性和批量操作等。ConcurrentHashMap在高并發(fā)場景中具有重要的應用價值2023-04-04Java數(shù)組與堆棧相關(guān)知識總結(jié)
今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識,文章圍繞著Java數(shù)組與堆棧展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下2021-06-06基于Pinpoint對SpringCloud微服務(wù)項目實現(xiàn)全鏈路監(jiān)控的問題
這篇文章主要介紹了基于Pinpoint對SpringCloud微服務(wù)項目實現(xiàn)全鏈路監(jiān)控的問題,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-02-02