阿里雲伺服器部署SpringBoot專案
在個人windows系統下,部署專案分以下幾步:
(2)將本地java程式的prod配置檔案引數配置為伺服器的路徑、資料庫等
3、該程序已存在【若啟動專案 出現 java.net.BindException: 地址已在使用 報錯】
(1)連線阿里雲伺服器
使用SecureCRT或者Xshell等終端模擬程式遠端連線阿里雲伺服器,連線後就是一臺linux系統的電腦,配置專案所需環境。
(2)將本地java程式的prod配置檔案引數配置為伺服器的路徑、資料庫等
將application.properties檔案指向prod,或者打包時直接配置環境為prod的包,然後將application-prod.properities中的tomcat埠;資料庫url、埠、使用者名稱、密碼;外部檔案路徑 等都配置為伺服器對應項。
(3)專案打包
SpringBoot專案可以打jar包獨立執行,也可以打war包丟到tomcat下執行。這裡推薦打jar包,在本地終端中cd到專案所在目錄,然後使用命令:mvn clean package -Dmaven.test.skip=true。使用jar包去伺服器上自己跑,需要避開其他已經使用的所有埠,包括tomcat,而這個埠需要在阿里雲官網介面上開放,否則會被防火牆攔截。
如果不想每次打包時都要更換配置項,可以打包時新增引數直接打包prod環境。
maven多環境打包:
在pom.xml的<project>標籤下設定如下配置項
<!--分別設定開發,測試,生產環境--> <profiles> <profile> <id>dev</id> <properties> <deploy.type>dev</deploy.type> </properties> </profile> <profile> <id>test</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <deploy.type>test</deploy.type> </properties> </profile> <profile> <id>prod</id> <properties> <deploy.type>prod</deploy.type> </properties> </profile> </profiles>
配置好後,就支援多環境打包了,在原有打包命令結尾,新增-P+環境,例如:mvn clean package -Dmaven.test.skip=true -Ptest,在結尾加了-Ptest,就是直接打包測試環境。
(4)專案部署執行
常規執行jar專案的方法是java -jar xxx.jar
看到上圖親切的介面你以為就是起來了?但是當你退出當前命令或者關閉終端,連線就會斷掉。所以必須使用常駐命令:nohup java -jar xxx.jar &,最後一個&表示執行命令後要生成日誌檔案nohup.out。
(5)部署後訪問遇到的問題及解決辦法
1、SpringBoot中使用jsp部署後無效
不知為何,打包版本只有1.4.2.RELEASE支援jsp訪問。在pom.xml中做如下配置方可:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.4.2.RELEASE</version>
</plugin>
2、部署後,linux中外部磁碟中靜態檔案無法獲取。
只需要在application.properties中配置:spring.resources.static-locations=file:F:\\test,file:/data/test
不論是windows環境還是linux環境,前面都要加上file:,上述配置以逗號分隔,第一個是windows環境,第二個是linux環境。
3、該程序已存在【若啟動專案 出現 java.net.BindException: 地址已在使用 報錯】
ps -ef|grep java,拿到程序ID,然後kill - 9 PID;再啟動
借鑑文章:https://www.cnblogs.com/liuxiaoming123/p/8044434.html
我的另一篇文章:【SpringBoot專案Mybatis連線MySQL以及前端訪問檔案配置】https://blog.csdn.net/qq_26012495/article/details/81260120