天天看點

Springboot如何打包部署項目

前言

這裡打包的是jar項目,也就是沒有webapp目錄,通過maven打包插件打包釋出到伺服器

1. pom檔案引入插件

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>      

boot使用這個插件可以将項目打包成一個可運作的jar,無需在目标伺服器安裝tomcat等

2.idea中快速打包

Springboot如何打包部署項目

當然打包之前記得選擇自己生産環境配置檔案

3.java –jar運作項目

我們打開剛才打包之後的所在的位置,确實有一個jar包

Springboot如何打包部署項目

在目前檔案路徑直接使用cmd通過java –jar運作項目

Springboot如何打包部署項目

4.通路項目

​​http://localhost:8080/index​​

5.釋出到伺服器

釋出之前伺服器需要已經安裝了jdk環境,資料庫(項目資料庫伺服器如果是本伺服器)

通過類似xshell等上傳檔案将上面的jar檔案上傳到伺服器某個檔案夾下,在目前路徑下運作下面指令即可在背景啟動項目,其中hellword-0.0.1-SNAPSHOT.jar是我的項目

nohup java -jar hellword-0.0.1-SNAPSHOT.jar > hellword-0.0.1-SNAPSHOT.log  2>&1 &

補充:其他相關指令

nohup java -jar xxx.jar &

這樣執行後,nohup會把執行結果中的日志輸出到目前檔案夾下面的nohup.out檔案中,通常情況下我們使用以上指令即可。 也可手動指定一個參數來規定日志檔案的輸出地點

nohup java -jar xxx.jar > catalina.out  2>&1 &

如果不需要輸出日志,可以使用如下指令

nohup java -jar xxx.jar >/dev/null &

為了友善管理,我們還可以通過Shell來編寫一些用于啟動應用的腳本,比如關閉應用的腳本:stop.sh

#!/bin/bash

PID=$(ps -ef | grep yourapp.jar | grep -v grep | awk '{ print $2 }')

if [ -z "$PID" ]

then

echo Application is already stopped

else

echo kill $PID

kill $PID

fi      

啟動應用的腳本:start.sh

#!/bin/bash

nohup java -jar yourapp.jar --server.port=8888 &      

整合了關閉和啟動的腳本:run.sh,由于會先執行關閉應用,然後再啟動應用,這樣不會引起端口沖突等問題,适合在持續內建系統中進行反複調用。

#!/bin/bash

echo stop application

source stop.sh

echo start application

source start.sh      

在Spring Boot的Maven插件中,還提供了建構完整可執行程式的功能,什麼意思呢?就是說,我們可以不用java -jar,而是直接運作jar來執行程式。這樣我們就可以友善的将其建立成系統服務在背景運作了。主要步驟如下:在pom.xml中添加Spring Boot的插件,并注意設定executable配置

<build>

      <plugins>

        <plugin>

          <groupId>org.springframework.boot</groupId>

          <artifactId>spring-boot-maven-plugin</artifactId>

          <configuration>

            <executable>true</executable>

          </configuration>

        </plugin>

      </plugins>

    </build>      

在完成上述配置後,使用mvn install進行打包,建構一個可執行的jar包,建立軟連接配接到/etc/init.d/目錄下

sudo ln -s /var/yourapp/yourapp.jar /etc/init.d/yourapp

在完成軟連接配接建立之後,我們就可以通過如下指令對yourapp.jar應用來控制啟動、停止、重新開機操作了

/etc/init.d/yourapp start|stop|restart