日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Spring Boot Maven Plugin打包異常解決方案

瀏覽:124日期:2023-07-31 16:38:58

【背景】spring-boot項(xiàng)目,打包成可執(zhí)行jar,項(xiàng)目內(nèi)有兩個(gè)帶有main方法的類并且都使用了@SpringBootApplication注解(或者另一種情形:你有兩個(gè)main方法并且所在類都沒有使用@SpringBootApplication注解),pom.xml如下

<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.5.3.RELEASE</version> <executions> <execution> <goals><goal>repackage</goal> </goals> </execution> </executions></plugin>

【問題】

執(zhí)行mvn clean package,報(bào)錯(cuò)如下(說點(diǎn)不相關(guān)的,使用install同理。因?yàn)閟pring-boot:repackage目標(biāo)(goal)(下文會(huì)說)被綁定在package構(gòu)建階段(phases),而package階段在install階段之前,指定構(gòu)建階段之前的階段都會(huì)執(zhí)行。詳細(xì)參見:Introduction to the Build Lifecycle)

[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.5.3.RELEASE:repackage (default) on project webapps-api-bid: Execution default of goal org.springframework.boot:spring-boot-maven-plugin:1.5.3.RELEASE:repackage failed: Unable to find a single main class from the following candidates [com.xx.api.main.ApiBidMain, com.xx.webapps.api.main.WebappsApiBidMain]

執(zhí)行mvn clean package spring-boot:repackage,報(bào)錯(cuò)如下,不如上面日志詳細(xì)

[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.5.3.RELEASE:repackage (default) on project webapps-api-bid: Execution default of goal org.springframework.boot:spring-boot-maven-plugin:1.5.3.RELEASE:repackage failed: Unable to find main class

【解決】

Note:參考官網(wǎng)描述,沒有指定<mainClass>或者繼承了spring-boot-starter-parent并且<start-class>屬性未配置時(shí),會(huì)自動(dòng)尋找簽名是public static void main(String[] args)的方法... 所以插件懵逼了,兩個(gè)妹子和誰在一起呢...

[推薦] 通用解決方法:<configuration>下配置mainClass,指定程序入口。

<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.5.3.RELEASE</version> <configuration> <mainClass>com.xx.webapps.api.main.WebappsApiBidMain</mainClass> </configuration> <executions> <execution> <goals><goal>repackage</goal> </goals> </execution> </executions></plugin>

Spring Boot Maven Plugin提供了幾個(gè)目標(biāo)(goal),我們?cè)?lt;executions>標(biāo)簽里配置的<goal>repackage</goal>對(duì)應(yīng)spring-boot:repackage這個(gè)目標(biāo)。

repackage: create a jar or war file that is auto-executable. It can replace the regular artifact or can be attached to the build lifecyle with a separate classifier. run: run your Spring Boot application with several options to pass parameters to it. start and stop: integrate your Spring Boot application to the integration-test phase so that the application starts before it.

The plugin rewrites your manifest, and in particular it manages theMain-ClassandStart-Classentries, so if the defaults don’t work you have to configure those there (not in the jar plugin). TheMain-Classin the manifest is actually controlled by thelayoutproperty of the boot plugin

[譯] 該插件重寫了清單文件(MANIFEST.MF,也就是jar里面的清單文件),此文件管理著主類(Main-Class)和開始類(Start-Class)入口。清單文件中的Main-Class由layout控制

這里的Start-Class就是我們配置的<mainClass>,而Main-Class受layout屬性的控制,別被名字搞亂了(是不是很詭異?看看解決方法二就明白為啥如此詭異了).... 來張圖直觀的感受下,對(duì)應(yīng)使用上面xml配置打包后的清單文件(MANIFEST.MF):

Spring Boot Maven Plugin打包異常解決方案

layout屬性默認(rèn)不需要配置,插件會(huì)自動(dòng)推斷。不同的layout屬性清單文件里面的Main-Class也會(huì)相應(yīng)的不同。比如layout不配置或者配置為JAR對(duì)應(yīng)的Main-Class是JarLauncher,layout配置為WAR對(duì)應(yīng)的Main-Class是WarLauncher。

[有限制條件]解決方法二:如果你的pom繼承自spring-boot-starter-parent(注意此前提),也可以直接在<properties>配置<start-class>(其實(shí)這里的start-class直接對(duì)應(yīng)清單文件里的Start-Class):

<properties> <start-class>com.xx.webapps.api.main.WebappsApiBidMain</start-class></properties>

解決方法三:打包的的時(shí)候注釋掉其他的@SpringBootApplication... 或者你有兩處main方法并且都沒有使用@SpringBootApplication注解,注釋掉一個(gè)main方法..... 這就是第三種解決方法233333

【隨便說說】

說說spring-boot:repackage這個(gè)目標(biāo)。Spring Boot Maven Plugin這個(gè)插件包含一系列目標(biāo)(goal),我們?cè)?lt;executions>標(biāo)簽里配置的<goal>repackage</goal>對(duì)應(yīng)spring-boot:repackage這個(gè)目標(biāo),看下官方介紹:

spring-boot:repackage repackages your jar/war to be executable.

Repackages existing JAR and WAR archives so that they can be executed from the command line using java -jar. Withlayout=NONEcan also be used simply to package a JAR with nested dependencies (and no main class, so not executable).

簡單點(diǎn)說,這貨重新打包個(gè)可執(zhí)行的jar/war,可以在命令行使用-jar執(zhí)行。如果指定layout為NONE那就沒有主類只是打個(gè)普通的jar(不可執(zhí)行),一般不會(huì)這么做。

一般情況,這個(gè)目標(biāo)會(huì)打一個(gè)新的jar/war,并把maven默認(rèn)打的jar/war添加.original后綴,在target目錄下可以看到:

Spring Boot Maven Plugin打包異常解決方案

【參考】

1.https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/

2.https://docs.spring.io/spring-boot/docs/2.0.0.BUILD-SNAPSHOT/maven-plugin//repackage-mojo.html

3.https://stackoverflow.com/questions/23217002/how-do-i-tell-spring-boot-which-main-class-to-use-for-the-executable-jar

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Spring
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
免费在线观看不卡| 蜜臀久久99精品久久久久宅男 | 99久久夜色精品国产亚洲1000部| 色综合五月天| 久久精品国内一区二区三区水蜜桃| 久久激情婷婷| 视频一区视频二区中文| 日韩美女精品| 麻豆成人综合网| 亚洲v在线看| 伊人久久亚洲美女图片| 伊人www22综合色| 久久不卡国产精品一区二区| a日韩av网址| 免费在线观看不卡| 美女免费视频一区| 黑丝美女一区二区| 欧美日韩黄网站| av一区在线| 亚洲九九精品| yellow在线观看网址| 美女国产一区| 精品中文字幕一区二区三区 | 91一区二区| 极品日韩av| 日韩激情视频网站| 欧美国产一级| 少妇精品久久久一区二区| 国产乱人伦丫前精品视频| 久久久亚洲一区| 欧美在线黄色| 欧美日韩国产高清电影| 国产美女精品视频免费播放软件| 久久久精品午夜少妇| 日韩高清不卡在线| 美女少妇全过程你懂的久久| 国产欧美日韩免费观看| 婷婷丁香综合| 国产在线观看91一区二区三区| 国产精品毛片| 98精品久久久久久久| 亚洲开心激情| 韩国三级一区| 国产精品一区二区精品| 美女久久一区| 国产成人精品亚洲日本在线观看| 免费精品视频最新在线| 日韩欧美不卡| 你懂的亚洲视频| 婷婷综合成人| 亚洲一区免费| 欧美丝袜一区| 精品精品国产三级a∨在线| 免费人成在线不卡| 国产在线|日韩| 国产精品a级| 蜜桃一区二区三区在线观看| 久久精品播放| 国产在线观看www| 国产欧美自拍| 亚洲欧洲av| 在线视频精品| 韩日一区二区三区| 日韩免费视频| 粉嫩av一区二区三区四区五区 | 国产精品一区二区99| 亚洲欧美日韩一区在线观看| 神马午夜久久| 成人国产精品久久| 久久丁香四色| 国产情侣久久| 欧美一级二级视频| 日韩美女国产精品| 蜜桃av一区二区| 亚洲色诱最新| japanese国产精品| 色综合五月天| 成人精品国产亚洲| 久久精品国产福利| 国产精品成人国产| 国产日产精品_国产精品毛片 | 日韩激情av在线| 久久成人亚洲| 亚洲一区免费| 免费不卡在线视频| 蜜桃国内精品久久久久软件9| 欧美一区三区| 亚洲一本视频| 99视频在线精品国自产拍免费观看| 久久高清免费| 激情五月综合| 久久午夜精品一区二区| 免费观看久久久4p| 中文字幕av亚洲精品一部二部| 久久不射网站| 日韩欧美在线精品| 日韩激情中文字幕| 久久激情综合网| 久久av影视| 日韩av二区| 欧美国产美女| 欧美亚洲国产精品久久| 欧美 日韩 国产一区二区在线视频 | 国产综合精品一区| 欧美亚洲在线日韩| 亚洲欧美日韩综合国产aⅴ| 亚洲日韩中文字幕一区| 欧美日韩99| 麻豆成人在线观看| 在线手机中文字幕| 伊人久久亚洲热| 日韩高清在线观看一区二区| 国产精品久久久亚洲一区| 精品日韩一区| 亚洲成人精品| 热久久久久久久| 国产精品毛片视频| 亚洲综合在线电影| 免费久久99精品国产| 国产精品男女| 久久精品免费一区二区三区| 丝袜美腿成人在线| 国产精品久久国产愉拍| 高清精品久久| 在线综合欧美| 国产精品亚洲欧美一级在线| 日韩电影免费网址| 蜜臀精品一区二区三区在线观看 | 日韩在线中文| 99在线精品视频在线观看| 日韩av午夜在线观看| 正在播放日韩精品| 亚洲一区导航| 高清av不卡| 天堂成人国产精品一区| 欧美精品国产白浆久久久久| 免费福利视频一区二区三区| 久久亚洲色图| 高清一区二区三区| 玖玖玖国产精品| 精品日韩在线| 蜜桃av一区二区三区电影| 国产一区二区精品福利地址| av不卡在线| 国际精品欧美精品| 亚洲精品乱码| 欧美精品高清| 国产日韩欧美| 亚洲激精日韩激精欧美精品| 国产精品麻豆成人av电影艾秋 | sm久久捆绑调教精品一区| 久久福利一区| 日韩亚洲一区在线| 97精品国产99久久久久久免费| 久久久久国产精品一区三寸| 奇米亚洲欧美| 亚洲激情黄色| 91青青国产在线观看精品| 日韩有吗在线观看| 激情综合激情| 国产在线观看91一区二区三区 | 久久婷婷丁香| 国产精品宾馆| 日韩专区在线视频| 久久久久国产| 精品一区二区三区在线观看视频 | 亚洲在线一区| 亚洲人成在线网站| 国产精品九九| 日韩三级久久| 美女国产一区| 伊人久久大香线蕉av不卡| 欧美黄页在线免费观看| 亚洲精品九九| av一区二区高清| 神马久久午夜| 卡一精品卡二卡三网站乱码| 久久亚洲欧洲| 亚洲激情欧美| 久久久精品久久久久久96| 精品99在线| 国产精品一卡| 欧美在线黄色| 青草国产精品| 奇米狠狠一区二区三区| 亚洲精一区二区三区| 日韩一区精品字幕| 亚洲一区黄色| 亚洲一区激情| 中文在线不卡| 欧美成人综合| 影院欧美亚洲| 免费精品国产| 欧美不卡高清| 99热免费精品| 免费人成网站在线观看欧美高清| 久久av一区| 亚洲日产国产精品| 日韩欧美久久| 日本午夜免费一区二区|