擠了點時間出來學maven+springMVC,然后demo部署到服務器上。maven打包后部署到服務器上,重啟tomcat。這個路線有點長,所以寫個輔助腳本減少時間成本。現在記錄一下。
先介紹兩個工具,PUTTY和WINSCP。
PUTTY是一個不常用的,可以在windows平台通過ssh連接到linux的工具。好處是這個工具特別小,免安裝。可是功能不強(語法高亮這點就夠了)。所以並不常用。(常用的是secureCRT &xshell)然而,putty在windows平台可以通過命令行的形式執行。一般putty會作為腳本工具使用的。
WINSCP是一個windows平台下,通過ssh協議復制東西到linux服務器的工具。也支持命令行的形式。
腳本邏輯是這樣的:
- 打包
- 打包結果上傳到服務器
- 服務器處理(部署、重啟服務器)
1、打包。
例如maven打包,而且打包后不自動退出。(文件后綴是bat)
call mvn clean package -U -Dmaven.test.skip=true
2、上傳到服務器。
用winscp,執行腳本。參考如下:
--打開控制台
WinSCP.exe /script="E:\eclipse_mars_workspace\singleBbs\autoUpdate\updateLoadScript.sh"
uploadLoadScript的內容參考:
--連接服務器,上傳文件 open sftp://account:password@ip:port put E:\eclipse_mars_workspace\singleBbs\target\singleBbs.war exit
put一個文件到用戶下的根目錄
3、服務器上處理(替換、重啟)
在bat腳本中,通過putty登錄,並且執行服務器腳本
PUTTY.EXE -ssh -pw password account@ip -m serverScript.sh
關閉tomcat,部署,啟動tomcat。
/root/tomcat7/tomcat7/bin/catalina.sh stop sleep 1 rm /root/tomcat7/tomcat7/webapps/singleBbs.war rm -r /root/tomcat7/tomcat7/webapps/singleBbs cp ~/singleBbs.war /root/tomcat7/tomcat7/webapps/singleBbs.war /root/tomcat7/tomcat7/bin/catalina.sh start sleep 1 rm ~/singleBbs.war exit
后記
一開始考我是慮用git的鈎子實現。大概邏輯是:
提交代碼到git,git打標簽的時候觸發鈎子從而打包、部署。
這樣子做壞處是服務器要安裝gitlab(鈎子嘛),maven。好處是有版本策略可以跟蹤代碼部署的情況。其實,很多大廠都是這樣方式實現的。不過作為個人開發、研發環境,還是通過復制的方式部署更輕量。