Springboot 產生jar包的幾種部署方式:
第一種部署形式:前臺啓動
Java –jar afwcs-start-1.0.0.jar
這種方式部署的項目,屬於前臺部署形式,一旦頁面關閉,項目也就隨着關閉。繼續請求接口的話什麼也沒有返回,表示當前項目已經死亡。
我們關掉了xshell之類的頁面,該程序就會停掉。
第二種部署形式:後臺啓動
網關:
nohup java -jar gateway-0.0.1.jar >gatewaylog.file 2>&1&
計算:
nohup java -jar afwcs-start-1.0.0.jar >afwcslog.file 2>&1&
啓動後的目錄:
啓動後產生的日誌目錄
這種情況啓動的項目會產生兩個log日誌:
一個gatewaylog.file一個GATEWAY-info.2019-06-12.log,而且兩個日誌的內容完全一致。
第三種部署方式:不要nohup日誌
所以如果我們不想要nohup日誌,我們可以直接將日誌打到黑洞裏面:nohup java -jar ***.jar --server.port=9091 >/dev/null 2>&1 &
或者:
nohup java -jar xxx.jar >/dev/null &
一般這種程序使用 &結尾。但是如果終端關閉,那麼程序也會被關閉。
Linux下還有一個特殊的文件/dev/null,它就像一個無底洞,所有重定向到它的信息都會消失得無影無蹤。
網關:
nohup java -jar gateway-0.0.1.jar >/dev/null 2>&1&
計算:
nohup java -jar afwcs-start-1.0.0.jar >/dev/null 2>&1&
這種情況部署的項目,日誌在gateway目錄下面的logs中,方便查看沒有產生多餘的日誌。
解釋:其中 2> 表示把標準錯誤(stderr)重定向,尖括號後面可以跟文件名,表示要把輸出的信息寫入哪個文件(也可不寫,則默認輸出到nohup.log),或者是&1, &2,分別表示重定向到標準輸出和標準錯誤。
第四種:指定外置配置文件
Spring程序會按優先級從下面這些路徑來加載application.properties配置文件
1.當前目錄下的/config目錄
2.當前目錄
3.classpath裏的/config目錄
4.classpath 跟目錄
因此,要外置配置文件就很簡單了,在jar所在目錄新建config文件夾,然後放入配置文件,或者直接放在配置文件在jar目錄
使用jar包外面的配置文件替換項目內的配置文件:
nohup java -jar gateway-0.0.1.jar --spring.config.location=/usr/local/jarPackage/gateways/application-dev.properties >/dev/null 2>&1&
經過測試能夠正常啓動項目和跑數據。