java项目尤其是通过maven打包的项目在部署上传的时候通常会遇到 打包->ssh上传->启动的麻烦。但是有时候以为项目小或者服务器限制没法做jenkins这类的自动化部署工具,所以就很麻烦。因此结合网上的和自己需求写了一个脚本,以实现在远程服务中只需要通过git来pull下代码后即可运行脚本执行打包部署项目工作,方便了很多。
首要工作
当然是将项目pull出来
git pull
其次就是执行脚本
借鉴了网上的杀死进程脚本
#! /bin/bash
# process-monitor.sh
process=$1
ps x | grep $process | grep -v grep
pid = $(ps x | grep $process | grep -v grep | grep -v 'stop.sh' | awk '{print $1}')
echo 关闭进程 $pid
kill $pid
sleep 5
接下来就执行打包部署脚本
#! /bin/bash
mvn clean package -Dmaven.test.skip
echo '打包成功'
\cp -rf xxxxxx/src/main/resources/application-* xxxxxx/config
\cp -rf xxxxxx/target/XX.jar xxxxxx/xx.jar
sh stop.sh xx.jar
### 这一步很关键 要是不跳进执行目录 java不会自动读取存在的配置文件
cd xxxxxx
nohup java -Xmx128m -jar xxxxxx/xx.jar > xxxxxx/xx.log 2>&1 &
echo '启动成功'
tail -f xxxxxx/xx.log
还是比较好理解的。
玩个坑,看看后面可不可以做一个整合git的脚本然后再看看能不能自动或者定时任务比对git的commitId自动pull去部署
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。