- 問題:将springboot包打成jar包之後使用
運作時提示jar中沒有主清單屬性java -jar
- 問題分析:主清單屬性是什麼?
- jar包中包含了三個檔案夾:BOOT-INF,META-INF,org,解壓jar包可以看到其中META-INF檔案夾下有一個MANIFEST.MF檔案,該檔案指明了程式的入口以及版本資訊等相關内容,如下
- Main-Class代表Spring Boot中啟動jar包的程式
- Start-Class代表Spring Boot程式的入口類,這個類中應該有一個main方法
- Spring-Boot-Classes代表了類的路徑,所有編譯後的class檔案,以及配置檔案,都存儲在該路徑下
- Spring-Boot-Lib表示依賴的jar包存儲的位置等
- 這些值都是SpringBoot打包插件會預設生成的,如果沒有這些屬性,SpringBoot程式自然不能運作,就會報錯:jar中沒有主清單屬性
- jar包中包含了三個檔案夾:BOOT-INF,META-INF,org,解壓jar包可以看到其中META-INF檔案夾下有一個MANIFEST.MF檔案,該檔案指明了程式的入口以及版本資訊等相關内容,如下
- 解決方案:在pom中添加如下插件之後執行
,此時再執行mvn install
就可以正常啟動程式了java -jar
-
之後執行<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
,此時再執行mvn install
就可以正常啟動程式了。親測可行java -jar