maven打包失敗踩坑的解決方式詳解
Maven打包失敗原因總結(jié)如下:
失敗原因1:無(wú)法使用spring-boot-maven-plugin插件
使用spring-boot-maven-plugin插件可以創(chuàng)建一個(gè)可執(zhí)行的JAR應(yīng)用程序,前提是應(yīng)用程序的parent為spring-boot-starter-parent。
需要添加parent的包spring-boot-starter-parent
<!-- 版本選當(dāng)時(shí)的版本 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.6.RELEASE</version>
<relativePath/>
</parent>在多模塊依賴(lài)時(shí),若parent包不是的spring-boot-starter-parent,而是自己定義的包,則應(yīng)該在插件中添加如下配置:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>失敗原因2:包無(wú)法被依賴(lài)
根據(jù)官網(wǎng)的說(shuō)法,直接生成的包是可執(zhí)行的jar包,可執(zhí)行jar包無(wú)法被依賴(lài)。
通過(guò)解壓縮jar包,可以看到可執(zhí)行的jar包有BOOT-INF和META-INF文件夾,可被依賴(lài)的jar包無(wú)BOOT-INF文件夾,只含有META-INF文件夾。
通過(guò)以下配置生成兩個(gè)jar包,可以被依賴(lài)。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<classifier>exec</classifier>
</configuration>
</plugin>
</plugins>
</build>
報(bào)錯(cuò):程序包xxx不存在!
失敗原因3:在子模塊中執(zhí)行打包命令,而不是執(zhí)行的父模塊的插件
例如:各模塊的依賴(lài)結(jié)構(gòu)如下
- generic-admin //管理員模塊
- generic-common //公共模塊
- generic-security //安全模塊
- generic-pom //父模塊
管理員模塊依賴(lài)安全模塊,安全模塊依賴(lài)公共模塊,他們都有父模塊。
有的人在子模塊中也添加了插件,若在子模塊中執(zhí)行打包命令,只能打包單獨(dú)的模塊,會(huì)出現(xiàn)程序包不存在的報(bào)錯(cuò)。
<!--插件配置-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
正確的做法:應(yīng)該在父模塊執(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í)行命令啟動(dòng)
nohup java -jar xxx.jar &
總結(jié)
到此這篇關(guān)于maven打包失敗踩坑的解決方式的文章就介紹到這了,更多相關(guān)maven打包失敗解決內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中Redis存儲(chǔ)String類(lèi)型會(huì)有亂碼的問(wèn)題及解決方案
在java中使用Redis存儲(chǔ)String類(lèi)型的數(shù)據(jù)時(shí),會(huì)出現(xiàn)亂碼,我寫(xiě)了一條存儲(chǔ)key為name,值為虎哥的字符串,然后獲取一下這個(gè)key為name的值,打印得到的值,下面通過(guò)實(shí)例代碼介紹Java中Redis存儲(chǔ)String類(lèi)型會(huì)有亂碼的問(wèn)題及解決方案,一起看看吧2024-04-04
使用注解@Validated和BindingResult對(duì)入?yún)⑦M(jìn)行非空校驗(yàn)方式
這篇文章主要介紹了使用注解@Validated和BindingResult對(duì)入?yún)⑦M(jìn)行非空校驗(yàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10
Java中在時(shí)間戳計(jì)算的過(guò)程中遇到的數(shù)據(jù)溢出問(wèn)題解決
這篇文章主要介紹了Java中在時(shí)間戳計(jì)算的過(guò)程中遇到的數(shù)據(jù)溢出問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
Java?FTP協(xié)議實(shí)現(xiàn)文件下載功能
FTP(File?Transfer?Protocol)就是文件傳輸協(xié)議。通過(guò)FTP客戶(hù)端從遠(yuǎn)程FTP服務(wù)器上拷貝文件到本地計(jì)算機(jī)稱(chēng)為下載,將本地計(jì)算機(jī)上的文件復(fù)制到遠(yuǎn)程FTP服務(wù)器上稱(chēng)為上傳,上傳和下載是FTP最常用的兩個(gè)功能2022-11-11
Java設(shè)計(jì)模式之單例設(shè)計(jì)模式解析
這篇文章主要介紹了Java設(shè)計(jì)模式之單例設(shè)計(jì)模式解析,設(shè)計(jì)模式是在大量的實(shí)踐中總結(jié)和理論化之后優(yōu)選的代碼結(jié)構(gòu)、編程風(fēng)格、以及解決問(wèn)題的思考方式,設(shè)計(jì)模式免去我們自己再思考和摸索,需要的朋友可以參考下2023-11-11
解決SpringMVC獲取請(qǐng)求參數(shù)亂碼問(wèn)題
在使用SpringMVC和thymeleaf進(jìn)行請(qǐng)求參數(shù)處理時(shí),可能會(huì)遇到亂碼問(wèn)題,對(duì)于GET方法亂碼,可通過(guò)修改Tomcat的server.xml文件,添加URIEncoding="UTF-8"解決,而POST方法亂碼,則需在web.xml配置SpringMVC提供的過(guò)濾器2024-11-11
淺談JSON的數(shù)據(jù)交換、緩存問(wèn)題和同步問(wèn)題
這篇文章主要介紹了淺談JSON的數(shù)據(jù)交換、緩存問(wèn)題和同步問(wèn)題,具有一定借鑒價(jià)值,需要的朋友可以參考下2017-12-12

