使用Git+Shell自动化部署发布springboot WEB应用

前言

    之前因为自己部署上线自己的博客系统,使用了SpringBoot自带的tomcat在服务器端直接运行gradle bootRun,而且用的是手动发布,就是自己打包好程序后上传到服务器端,然后再运行。这样带来一个问题就是,不好统一管理,自己修改代码后,还需要进行一系列繁杂的手动操作,效率是很低下的。网上有很多框架的时候,因为是个人使用,所以嫌重,于是自己搞了一套使用git + shell自动化部署spring boot web应用的脚本。前提是自己已经将代码上传到git仓库中,如还没有,请看我上一篇博文的描述。因为个人服务器上的应用源码是比较隐私的,所以建议不要公布在共有仓库中,博主使用的是码云的免费私有仓库,因为github要$的。


环境

本地环境:WIN10

服务器环境:CentOS7

GIT仓库:码云私有仓库


步骤

1. 安装tomcat和配置

从官网下载tomcat,上传到服务器,或者直接在服务器wget进行解压和安装,vi编辑tomcat目录下/conf/server.xml

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8" />

找到上面的片段添加URIEncoding="UTF-8",同上,防止编码问题的出现。

2. 配置git

git config --global core.autocrlf false    #忽略win和linux平台的分隔符差异
git config --global core.quotepath off     #防止中文乱码问题

3. 创建公钥,并配置到码云上

ssh-keygen -t rsa -C "码云的邮箱账号"

一路next,完成后添加到公钥仓库中并查看公钥字串

eval `ssh-agent`
ssh-add ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub

注:将公钥字串复制并配置到码云上,详细过程见博主上一篇博客


4. 创建要存放项目的目录

mkdir blog   #自定义名字,这个是我项目的名字

5. 进入目录,使用git进行clone

找到自己的项目git地址,在服务器端使用git进行拉取

git clone "仓库地址"

6. 进入clone好的项目目录,便可以执行下面的操作

git checkout master        #查看主分支,或者将master改成分支名,查看分支
git fetch                  #匹配当前最新版本
git pull                   #将最新的代码更新到本地

7. 所以编写如下的shell脚本进行自动化发布

echo "===========进入git项目blog目录============="
cd /usr/local/blog/blog/


echo "==========git切换分支到master==============="
git checkout master

echo "==================git fetch======================"
git fetch

echo "==================git pull======================"
git pull


echo "===========删除之前编译的war包===================="
gradle clean

echo "===========编译并跳过单元测试===================="
gradle build -x test  

echo "============删除旧的ROOT.war==================="
rm -rf /usr/local/apache-tomcat-9.0.7/webapps/ROOT.war


echo "======拷贝编译出来的war包到tomcat下-ROOT.war======="
cp /usr/local/blog/blog/build/libs/blog.war /usr/local/apache-tomcat-9.0.7/webapps/ROOT.war


echo "============删除tomcat下旧的ROOT文件夹============="
rm -rf /usr/local/apache-tomcat-9.0.7/webapps/ROOT



echo "====================关闭tomcat====================="
/usr/local/apache-tomcat-9.0.7/bin/shutdown.sh 


echo "================sleep 10s========================="
for i in {1..10}
do
	echo $i"s"
	sleep 1s
done


echo "====================启动tomcat====================="
/usr/local/apache-tomcat-9.0.7/bin/startup.sh 

8. 启动脚本,完成自动化发布

至此已经完成自动化脚本的构建,项目代码更新后,只需要在本地将代码push到远程git仓库中,然后在服务器运行上述的shell脚本文件即可更新服务器的项目。上述的脚本文件,大家可以根据自己的需求进行修改。


猜你喜欢

转载自blog.csdn.net/qq_33876553/article/details/80118370