java快速部署

現在基本上都是自動化部署了,但有些小公司,或者一些小項目,不具備搭建自動化部署的能力,還是用的傳統方式:打jar包>上傳服務器>運行。今天我分享一些傳統方式的小竅門,希望對大家有用。
傳統方式其實花的時間最多的過程就是上傳jar包,本身java打出的包含了各種亂七八糟的其他依賴包,所以總體積很大,一般50M以上。如果網速很差,或者一些專用網絡環境做了限制,上傳一次jar包要很長時間,特別是有的時候做測試,每次打完測了之後發現有問題,再改再上傳,來來回回的浪費時間,浪費生命啊!
其實解決這個問題很簡單,可以在運行jar包的服務器上裝個git(其他版本控制工具類似)客戶端,然後把代碼下下來,再下個maven,直接本地build+package,速度會快很多,因爲代碼本身很小的,大的是依賴的那些jar包,而jar包在構建的時候下載。
假設項目名稱bill

1)安裝git

yum install -y git

2)安裝maven

yum install -y maven

3)建立工作目錄/data/oa/

mkdir -p /data/oa

4)設置git

5)切換到目錄/data/oa/,並下載代碼

git clone ssh://[email protected]/wangjf/bill.git

6)新建腳本start.sh,完成代碼更新、maven打包及項目啓動

start.sh

#!/bin/bash
# 切換到項目目錄
cd /data/oa/bill
# 獲取最新源代碼
git pull
# maven打包
mvn clean package -Dmaven.test.skip=true
# 移除之前的jar包
rm -rf /data/oa/bill-1.0.0.jar
# 把最新的包移動到指定位置
mv /data/oa/bill/target/bill-1.0.0.jar /data/oa/
# 切換到工作目錄
cd /data/oa
# 若有bill進程(java項目)正在執行,則kill掉
ps -ef | grep bill | grep -v grep | awk '{print $2}' | xargs kill -9
# 啓動jar包
nohup java -server -Dfile.encoding=UTF-8 -Duser.language=zh -Duser.region=CN -Djava.security.egd=file:/dev/./urandom -Djava.io.tmpdir=/tmp -Dserver.tomcat.basedir=/tmp -Dspring.profiles.active=dev -jar bill-1.0.0.jar &
# 打印啓動日誌
tail -f nohup.out

7)每次項目更新後,執行腳本

sh start.sh

最後,如果你不想留下痕跡,可以在shell腳本上加幾個步驟,把git和maven卸載,臨時文件清理之類的。不過maven倉庫最好留着,不然每次下載也是浪費時間。
上面這個方法特別適合開發環境和測試環境,隨便整的那種,生產環境還是謹慎些。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章