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仓库最好留着,不然每次下载也是浪费时间。
上面这个方法特别适合开发环境和测试环境,随便整的那种,生产环境还是谨慎些。

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