spring boot 執行 jar 或 war 提示沒有主清單屬性解決
阿新 • • 發佈:2019-01-10
在將專案開發,打包 jar 或者 war 的時候, 我們可以通過 java -jar xxxx.jar/war 的命令直接執行,這個確實很方便
今天lz 就遇到了打包 jar 或者 war 通過 java -jar xxxx.jar/war 執行確提示沒有主清單屬性
在網上搜索很多都是說在 pom.xml 中新增 下面的依賴,卻沒有解決問題
<groupId>org.springframework.boot</group
<artifactId>spring-boot-maven-plugin</artifactId>
其實在通過 java -jar xxx.jar/war 之前, lz 直接將打包好的 war 放在 tomcat 中執行是可以,因為通過 tomcat 執行的時候,不需要 經過main 程式, 但是在啟動tomcat 的時候, tomcat 的控制檯卻報錯,大致原因是: tomcat 在解壓 war 的時候有檔案損壞出錯,但是並沒有影響程式執行,其實這裡報錯就是因為打包的時候,main 程式入口沒有打包進去原因
當時 lz 的pom 檔案是這樣的
<build> <finalName>dzj-applet</finalName> <pluginManagement> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> <configuration> <srouce>${jdk.version}</srouce> <target>${jdk.version}</target> <encoed>${project.build.sourceEncoding}</encoed> </configuration> </execution> </executions> </plugin> </plugins> </pluginManagement> </build>
在 pom 中 如果沒有下面兩個標籤, 在打包的時候會出錯, 但是在通過 java -jar 執行的時候就提示 沒有主清單屬性
<configuration> <mainClass>com.dzj.exx.main.ServletInitializer</mainClass> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions>
而且不論是打包jar 和 打包 war
在target 的目錄下會有這兩個檔案
lz 一開始打包 都只有上面那個 war 所以通過 java -jar 執行的時候一直提示沒有主清單屬性,而打包和在 tomcat 中部署都沒有出錯