如何部署 spring boot 項目到服務器上
開發環境說明:
本地:Windows 10
服務器:Ubuntu 16.04
開發工具:IntelliJ IDEA
項目管理:Maven
-
在
application.properties
裏面設置好項目部署端口server.port=8443
-
在
pom.xml
裏面添加如下代碼<properties> <java.version>1.8</java.version> <!--添加如下代碼避免因爲Test中的實例而報錯--> <skipTests>true</skipTests> </properties>
-
設置打包方式爲
jar
包、版本描述以及基本描述<version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>project</name> <description>Demo project for Spring Boot</description>
-
用
Maven
打包在IDEA右側打開
Maven Project
面板,雙擊package即可如果一切順利的話,會有如下結果:
-
配置服務器環境
一般而言,在這裏我們僅需要配置Java和Mysql,以下僅介紹如何在本地訪問服務器上的數據庫。首先在服務器上進入數據庫,分配一個新用戶。
#進入mysql mysql -u root -p ‘原來的密碼’ show databases; use mysql; #創建新用戶 CREATE USER 'root'@'%' IDENTIFIED BY '123456'; #賦予權限 GRANT ALL ON *.* TO 'root'@'%'; ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; #刷新 FLUSH PRIVILEGES;
然後使服務器可以遠程訪問以及設置訪問端口,默認爲
3306
。這樣,我們就創建了一個
root
用戶供遠程訪問,且具有所有權限,在本地用SQLyog
鏈接即可。這樣我們就可以在本地方便的操作遠程的數據庫,當然,也可以在本地項目中通過單元測試來添加項目初始數據。
-
在服務器上部署
將生成的jar包上傳到服務器上,由於Spring Boot 項目自帶tomcat,所以服務器上可以不用安裝tomcat,這也是我們選擇打包成jar包而不是war包的原因。接着我們在jar包路勁下執行該jar包:
java -jar helloworld.jar
如果出現錯誤會在命令行有Error提示。保證一切正確的情況下,運行如下指令:
nohup java -jar helloworld.jar &
nohup的意思不掛服務,常駐的意思,除非雲服務器重啓,那就沒法了;最後一個&表示執行命令後要生成日誌文件nohup.out 。退出之後可以用以下命令查看服務是否已經部署到端口上
sudo netstat -tupln
如果想要結束某些進程,即清理端口的話,執行以下指令,pid可以通過上述指令查詢得到
sudo kill -9 pid
以上過程的部分截圖如下:
多提一句,如果用的是阿里雲服務器,那麼要進安全組裏面去開放對應的端口,我這裏是8843。
綜上就是部署JavaWeb項目到服務器上的所有過程。