SpringBoot - Maven方式打包

SpringBoot 爲當前最流行的JAVA框架 , 內嵌了 Tomcat 服務器 , 我們不用再像以前 Spring 那樣打包成 war , 然後將 war 扔到 tomcat 中運行 。 我們現在可以直接將 SpringBoot 項目打包爲一個內置 tomcat 的可運行 jar , 通過 java -jar xxx.jar 直接運行 (方便易用) 。

打包 SpringBoot 的方式有很多

  1. 使用 Maven打包 jar (主流)
  2. 使用各種開發工具打包Jar . 如 : idea , eclipse 等等 。

這裏我們使用主流的Maven方式

1、在pom.xml中添加SpringBoot Maven插件 :

<!-- <build > 主要用於編譯設置 -->
<build>
	<!-- 定義打包成jar的名字 -->
	<!-- 這裏如果不定義 , 打包成的jar名字格式爲 : <artifactId> + <version> -->
	<finalName>thymeleaf</finalName>
	<plugins>
		<!--SpringBoot maven插件-->
		<!-- 可以將應用打成一個可執行的jar包 -->
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
			<!-- 設置啓動入口 -->
			<!-- manClass即使不配置 , SprinBoot也在打包的時候也清楚入口是哪個 , 其實不用配置 -->
			<configuration>
				<mainClass>com.bella.ThymeleafApplication</mainClass>
			</configuration>
		</plugin>
	</plugins>
</build>

2、進入項目目錄

  • 通過開發工具進入項目 (如 : idea Terminal)
  • 使用 Dos / Shell 進入項目目錄

IDEA 方式進入項目目錄

Dos 方式進入項目目錄

3、執行打包命令

mvn clean package -Dmaven.test.skip=true

Maven方式打包SpringBoot可運行Jar
打包成功

Maven 打包成功後 , 可以通過控制檯日誌查看 Jar 的位置 . ( 如上圖 )

  • Building jar : jar的絕對路徑

4、運行jar

  1. 打開Dos控制檯 (cmd)
  2. 進入 jar 目錄 (cd jar絕對路徑)
  3. 運行jar (java -jar xxx.jar)

運行jar成功

異常解決

1、 打包成功,運行jar報錯 : 沒有注清單屬性

出現這種情況的原因 :
你的pom.xml 沒有引入 SpringBoot Maven插件 . (第一步 在pom.xml中添加SpringBoot Maven插件 )

注意 : 即使你沒有引入 SpringBoot Maven 插件也可以構建成功。是因爲 maven 本身可以構建成功。但是Maven並不知道你的項目入口在哪裏。這就是爲什麼要引入 SpringBoot maven 插件的原因。

2、打包失敗

打包失敗

這個錯誤的意思 :
maven 打包jar的時候是要覆蓋之前的jar的。但是maven發現之前的jar正在被使用 , 無法進行刪除覆蓋操作。
解決辦法 :
這種情況一般是因爲此 jar 被打開 或者 被 啓動中。 我們只要關閉了使用他的程序即可。 比如 : 關閉啓動他的 DOS 窗口。 關閉打開他的壓縮工具等等。

3、訪問Action跳轉View找不到

我這裏使用的是 SpringBoot + thymeleaf . 當訪問某個Action地址服務器進行視圖跳轉的時候報錯 : 找不到該頁面 .
比如 : 我訪問 http://127.0.0.1:1118/index

訪問報錯
找不到視圖

導致這個錯誤的原因 :
SpringMVC 返回視圖的時候 , 頁面目錄前面多加了一個 “/” 如 : return “/index”;

去掉目錄前的 /

像上面返回視圖時多加了一個 “/”
你在用idea直接啓動 SpringBoot 項目訪問頁面的時候沒有問題
打包成 jar 訪問就找不到頁面

具體爲什麼 ? 沒有細緻研究。 反正去掉 “/” 就可以了。 也不影響idea的開發。

知識擴展

  • SpringBoot 啓動命令大全
  • SpringBoot Maven 打包命令大全

項目源碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章