在四處都在講微服務、分佈式的今天,作爲約定猶豫配置的spring的升級框架springboot可謂是火的一塌糊塗。這篇文章我們對springboot的打包、部署到服務器、刪除並重新部署做個一站式的總結介紹。
前提提要:我使用的是IDEA+maven打包,部署到阿里雲的輕量級服務器上,服務器系統是centos。
1、Springboot的打包
1.1、需知
首先我們要知道的是springboot的打包方式有多種,常見的有打包成jar包、打包成war包、打包成解壓的文件夾。war包形式和解壓的文件夾都是放在服務器下載的tomcat(或其他服務器容器)上(不是重點,不多做介紹),jar包形式是springboot推薦的打包方式,springboot會內置一個tomcat在jar包中,只需在服務器運行jar包就可以使用,不用依賴外界的tomcat。
1.2、打包前準備
1)確保工程中指定的端口在服務器未被佔用,確保一項目一端口。
application.properties文件中配置server.port=8090
2)確保數據源連接參數正確
開發時若使用的是本地數據庫,那在打包前將數據庫連接參數修改爲目標數據庫。
3)確保工程使用的是jdk不能是jre
1.3 打包
1)在pom.xml中添加如下依賴(一般springboot項目默認有)
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
點擊IDEA的maven project任務欄,點擊clean清楚之前打包數據後點擊package打包項目。或者直接刪除target文件夾後點擊編譯按鈕即可再次得到需要的jar文件
2、部署到阿里雲(啓動)
1)找到jar包用工具傳輸到服務器(我一般傳輸的usr/local/springboot/[項目名] 文件夾下,方便查找)
2)啓動:可以直接使用java -jar命令,但是這個命令有問題,如果是使用遠程工具連接方式操作服務器,那當遠程連接窗口關閉項目也會隨之停止,並且項目啓動後會佔據窗口,直接在服務器上操作也是一樣,所以需要解決。我們可以通過 nohup 和 & 讓項目在後臺運行。同時相應的日誌會默認輸出到nohup.out中,可以查看該文件來查看相應的log。
# --server.port=8090指定端口
nohup java -jar xxx.jar --server.port=8090 &
* nohup:不掛起的意思( no hang up),退出、關閉窗口都不影響;
* &:後臺運行。
3)開放端口號
要知道,服務器對端口號默認是不開放的。這個時候我們訪問項目是訪問不到的。所以我們要開放項目端口號。參考另一篇文章——阿里雲輕量級服務器開放端口號
3、刪除這個項目
一般來說,這樣的部署都是自己的Demo,所以會存在頻繁的修改,這個時候我們需要先kill之前的項目進程,然後再啓動新的項目進程(千萬別直接刪除文件以爲就完事了,這個時候項目進程在內存中運行,你刪除磁盤上的文件沒有用)
在上面啓動後會有對應的進程ID,通過kill -9 ID 即可停止。
如果我們找不到進程ID了怎麼辦?推薦以下方法:
1)根據進程名查看進程id
ps aux | grep 進程名
2)根據端口號查看進程id
netstat -nap | grep 端口號