1. 分離靜態檔案
打包時不必分離resources/static 資料夾下內容只需要將靜態目錄轉發更改一下目錄位置就可以了。原因是通常我們都採用前後端分離模式開發專案,前端程式碼與後端程式碼是分離在兩個專案中。
1.1 開啟WebConfig.java內容如下:package com.example.demo.conifg;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configurationpublic class WebConfig implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { // 配置靜態目錄轉發 registry.addResourceHandler("/dist/**").addResourceLocations("classpath:/static/dist/"); }}
將檔案做如下更改:
package com.example.demo.conifg;import org.springframework.context.annotation.Configuration;import org.springframework.util.ResourceUtils;import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;import java.io.File;import java.io.FileNotFoundException;@Configurationpublic class WebConfig implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { // 配置靜態目錄轉發// registry.addResourceHandler("/dist/**").addResourceLocations("classpath:/static/dist/"); try { String jar_parent = new File(ResourceUtils.getURL("classpath:").getPath()).getParentFile().getParentFile().getParent(); String html_path = jar_parent + "/dist/"; registry.addResourceHandler("/dist/**").addResourceLocations(html_path); } catch (FileNotFoundException e) { e.printStackTrace(); } }}
更改後靜態目錄預設讀取jar包所在目錄dist路徑資源,修改後釋出包結構如下圖:
image.png
啟動專案測試相關介面與靜態頁面可以正常顯示。
1.2 使用獨立jre執行專案,脫離系統Java環境下載對應系統版本的jre檔案,存放到與jar包同一目錄下,jar包啟動命令使用./jre/bin/java -jar xx.jar(這裡使用的linux版本,win版本命令做相應更改即可)最終jar釋出包結構如下圖:
image.png
寫在最後至此已經完成了SpringBoot專案打包獨立可執行Jar所有操作,這是一種比較原始的部署模式,使用場景多在為使用者快速搭建本地可使用服務而不依賴使用者系統配置。
文章中如有錯誤的地方望指出。
最新評論