SpringBoot+Vue項目打包部署完整步驟教程
前言
本教程旨在幫助開發(fā)者,完成基于springboot后端項目和基于vue前端項目的打包以及服務器部署。本教程的前提是開發(fā)者已經(jīng)擁有一個完整的springboot+vue的前后端分離的項目,以及一臺配置好JDK和MySQL以及nginx的環(huán)境的云服務器。目標是能夠將項目部署到云服務器上,并通過云服務器的IP訪問項目。
一.Vue前端項目打包
在VSCode中打開前端項目的文件夾,編輯vue.config.js配置文件,添加以下代碼塊:
module.exports = {
publicPath: "/",
assetsDir: "static",
outputDir: 'dist',
}如圖所示:

注:publicPath的設置會影響到應用在部署環(huán)境中的運行情況,特別是在處理動態(tài)路由時可能會出現(xiàn)問題。如果你設置 publicPath 為 ./,它會被解釋為當前路徑,這在大多數(shù)情況下是沒有問題的,但在某些服務器配置如(Nginx)中,可能會導致路由解析錯誤,尤其是對于動態(tài)路由的情況。所以本教程中的pulicPath設置為''/''。
然后將request.js中的baseURL的localhost設置為服務器的IP,以便保證后續(xù)項目部署前后端的對接。否則后續(xù)部署到服務器上可能會出現(xiàn):前后端對接不上,前端頁面無數(shù)據(jù)顯示的情況。

打開終端(注意:這里需要新建一個終端窗口,而不是在當前的窗口,否則之前所做的更改均無效),輸入npm run build命令執(zhí)行打包,打包結束后當前目錄會出現(xiàn)一個dist文件夾,即為打包后的前端項目。

二.SpringBoot后端項目打包
用IDEA打開后端項目,編輯application.yaml或者application.properties配置文件,將數(shù)據(jù)庫連接的IP由localhost改為服務器的數(shù)據(jù)庫IP。(前提:服務器上有對應的數(shù)據(jù)庫環(huán)境和對應項目的數(shù)據(jù)庫,并且關閉了防火墻,能夠在本地訪問)

打開后端項目的跨域配置文件,將localhost改為服務器的IP,以便項目部署到服務器后,允許前端項目8080端口能夠向后端項目的8081端口發(fā)送數(shù)據(jù)請求。(本教程前端項目占用8080端口,后端項目占用8081端口)

如果項目中有單元測試的代碼,記得注釋掉,否則可能會打包失敗。

完成了以上配置,即可執(zhí)行打包( 如果要重新打包,建議在每次打包前,先輸入mvn clean 清除已有的打包文件)。在IDEA中新開一個終端窗口,輸入命令:
mvn package
打包成功后,項目目錄中會新增一個target文件夾,其中.jar結尾的文件即為打包成功后的項目包。

進入target目錄,輸入命令:
java -jar yuedong-0.0.1-SNAPSHOT.jar
即可啟動項目。

三.項目部署
前后端項目打包完成后,現(xiàn)在需要將項目部署到云服務器上。首先打開WinSCP,連接云服務器。將前端項目打包的dist文件夾和后端項目打包后的yuedong-0.0.1-SNAPSHOT.jar包上傳到服務器上對應的目錄中(本教程事先在服務器的/opt目錄中新建了名為yuedong的項目文件夾,里面的front和backend目錄下分別存放前后端的打包文件)。


打開Xshell,連接上云服務器,輸入命令:
vim /etc/nginx/nginx.conf
編輯nginx.conf配置文件(這里需要首先在服務器上安裝nginx,如果未安裝,請先輸入命令:sudo apt install nginx或者sudo yum install nginx,根據(jù)自己的服務器的操作系統(tǒng)去安裝),配置如下(本教程的nginx配置可能比較簡單,更復雜專業(yè)的配置,讀者可查閱nginx的教程文檔或者其他博客,本教程追求最簡單可行的配置方式):
events {}
http {
server {
listen 8080;
server_name localhost;
root /opt/yuedong/front/dist;
index index.html ;
location / {
root /opt/yuedong/front/dist;
try_files $uri $uri/ /index.html;
expires 30d;
}
}
}讀者根據(jù)自己的項目端口,和dist文件夾目錄自行更改以上配置。編輯完后輸入 :wq保存退出,然后輸入以下命令重啟nginx服務(本教程中,服務器的nginx是已經(jīng)開啟了的,如果首次啟動請輸入:sudo systemctl start nginx):
nginx -s reload
配置成功后,現(xiàn)在打開瀏覽器,輸入服務器的公網(wǎng)IP以及端口(本教程是8080),可以看到項目的前端頁面。現(xiàn)在部署成功了一半,由于是前后端分離,前端只有靜態(tài)的頁面,并沒有數(shù)據(jù)。接下來得在服務器中啟動我們剛剛上傳的后端項目jar包,開啟后端服務。

打開Xshell,進入到存放后端jar包的目錄下,輸入以下命令開啟后端服務:
nohup java -jar yuedong-0.0.1-SNAPSHOT.jar &

注:java -jar yuedong-0.0.1-SNAPSHOT.jar這條命令也會啟動 Java 應用程序,但它會在當前終端窗口占用并顯示輸出。如果你關閉終端或者按下 Ctrl+C 終止命令,Java 程序也會隨之停止。nohup java -jar yuedong-0.0.1-SNAPSHOT.jar &:nohup 命令用于忽略信號,允許程序在后臺繼續(xù)運行。& 符號將該命令放到后臺執(zhí)行,不阻塞當前終端。這樣做可以讓 Java 程序在后臺持續(xù)運行,即使你關閉了終端窗口或退出了登錄會話。
開啟后端服務后,再次刷新瀏覽器的頁面,可以看到前端頁面有數(shù)據(jù)出現(xiàn)了。

至此,項目打包部署完成!
總結
到此這篇關于SpringBoot+Vue項目打包部署的文章就介紹到這了,更多相關SpringBoot+Vue項目打包部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Spring Boot中單例類實現(xiàn)對象的注入方式
這篇文章主要介紹了Spring Boot中單例類實現(xiàn)對象的注入方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
SpringSecurity JWT基于令牌的無狀態(tài)認證實現(xiàn)
Spring Security中實現(xiàn)基于JWT的無狀態(tài)認證是一種常見的做法,本文就來介紹一下SpringSecurity JWT基于令牌的無狀態(tài)認證實現(xiàn),感興趣的可以了解一下2025-04-04
Java替換中使用正則表達式實現(xiàn)中間模糊匹配的方法
今天小編就為大家分享一篇Java替換中使用正則表達式實現(xiàn)中間模糊匹配的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07
Java源碼深度分析String與StringBuffer及StringBuilder詳解
當對字符串進行修改的時候,需要使用?StringBuffer?和?StringBuilder類,和String類不同的是,StringBuffer和?StringBuilder類的對象能夠被多次的修改,并且不產(chǎn)生新的未使用對象,本篇我們來分析分析它們的源碼2022-05-05
SpringBoot2.X整合Spring-Cache緩存開發(fā)的實現(xiàn)
本文主要介紹了SpringBoot2.X整合Spring-Cache緩存開發(fā)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-07-07

