前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Git+Shell自动化部署发布springboot WEB应用

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

作者头像
十里桃花舞丶
发布2018-05-17 14:41:38
1.4K0
发布2018-05-17 14:41:38
举报
文章被收录于专栏:桥路_大数据桥路_大数据

前言

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

环境

本地环境:WIN10

服务器环境:CentOS7

GIT仓库:码云私有仓库

步骤

1. 安装tomcat和配置

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

代码语言:javascript
复制
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8" />

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

2. 配置git

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

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

代码语言:javascript
复制
ssh-keygen -t rsa -C "码云的邮箱账号"

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

代码语言:javascript
复制
eval `ssh-agent`
ssh-add ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub

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

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

代码语言:javascript
复制
mkdir blog   #自定义名字,这个是我项目的名字

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

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

代码语言:javascript
复制
git clone "仓库地址"

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

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

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

代码语言:javascript
复制
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脚本文件即可更新服务器的项目。上述的脚本文件,大家可以根据自己的需求进行修改。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年04月28日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 环境
  • 步骤
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档