1. 程式人生 > >阿里雲伺服器部署SpringBoot專案

阿里雲伺服器部署SpringBoot專案

在個人windows系統下,部署專案分以下幾步:

(1)連線阿里雲伺服器

(2)將本地java程式的prod配置檔案引數配置為伺服器的路徑、資料庫等

(3)專案打包

(4)專案部署執行

(5)部署後訪問遇到的問題及解決辦法

1、SpringBoot中使用jsp部署後無效

2、部署後,linux中外部磁碟中靜態檔案無法獲取。

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