Maven指令打包SpringBoot項目提示沒有主清單文件問題
Maven指令打包SpringBoot項目提示沒有主清單文件
項目打包為Jar后
通過java -jar xxxxx.jar運行時提示xxxxx.jar中沒有主清單屬性,如下:
打開jar包
META-INF目錄下的MANIFEST.MF,內容如下:
Manifest-Version: 1.0 Archiver-Version: Plexus Archiver Built-By: greedystar Created-By: Apache Maven 3.2.5 Build-Jdk: 1.8.0_181
我們發(fā)現(xiàn)這里沒有主類等信息,是什么原因導致的呢?
網上大多數資料指出需要在pom.xml中配置maven插件,如下:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
這種解決方案通??梢越鉀Q大部分問題,但這種方案只在使用 spring-boot-starter-parent 為 <parent/> 標簽內容時才有效,當我們使用自定義的<parent/>節(jié)點時按如上所述的方式配置maven插件則是無效的,這是為什么呢?讓我們一起看一看 spring-boot-starter-parent 中的配置。
spring-boot-starter-parent 中maven插件的配置如下:
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> <configuration> <mainClass>${start-class}</mainClass> </configuration> </plugin>
我們可以看到這里配置了主類信息以及一個重要的標簽<goal>,對repackage的描述如下:
Repackages existing JAR and WAR archives so that they can be executed from the command line using java -jar.
看到這里我們就清楚了,當使用自定義的 parent 時,我們需要自行配置maven插件的<goal>屬性,如下:
<build> <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>
指定mvn clean package指令打包jar包后看一下清單文件
內容如下:
Manifest-Version: 1.0 Archiver-Version: Plexus Archiver Built-By: greedystar Start-Class: cn.bimart.scf.bc.tx.server.TxServerApplication Spring-Boot-Classes: BOOT-INF/classes/ Spring-Boot-Lib: BOOT-INF/lib/ Spring-Boot-Version: 2.1.1.RELEASE Created-By: Apache Maven 3.2.5 Build-Jdk: 1.8.0_181 Main-Class: org.springframework.boot.loader.JarLauncher
這樣項目就打包成功了,通過java -jar也可以正確運行了。
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
MybatisPlus實現(xiàn)對象嵌套關聯(lián)查詢一對多List集合查詢
這篇文章主要介紹了MybatisPlus實現(xiàn)對象嵌套關聯(lián)查詢一對多List集合查詢,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05Java微信公眾平臺開發(fā)(4) 回復消息的分類及實體的創(chuàng)建
這篇文章主要為大家詳細介紹了Java微信公眾平臺開發(fā)第四步,回復消息的分類及實體的創(chuàng)建,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04