CenOS 7 手撸springboot 自动部署脚本autodeploy.sh
2017-04-17 22:44
465 查看
最近玩springboot,自己有一个服务器,写完了都放到服务器去部署,刚开始用的gui-manager方式,但是慢慢的发现,这个方法部署太慢了。大家都知道一般的小水管宽带的上传也就70k左右,部署一次等n久。于是想着能不能自动部署,每次把代码提交即可。经过查找资料结合自身已有的了解,找到了Jenkins,很强大,但是配置什么的略微麻烦,看网上的教程貌似也要编写脚本,于是想着何不自己直接撸个脚本算了,于是各种查找各种学脚本,于是有了如下简单的部署脚本,在结合crontab任务,基本可以满足自己的需求了。
贴出脚本代码如下:
脚本略显简陋,毕竟不是专业。
安装git并配置git的SSH登录
maven 安装,最简单方式
也可以到官网自己去下载安装包配置
复制以上脚本粘贴,并修改Tomcat的webapps的路径为你自己服务器上的路径,同时修改GitHub的项目地址,还有你的Tomcat的服务器的启动(systemctl start tomcat)和停止(systemctl stop tomcat)指令,和我一样的不需修改
保存退出,执行指令确保脚本可运行
手动运行脚本
配置定时任务--crontab定时任务配置
大工告成,现在只要提交到GitHub上即可,等时间一到或者直接登录服务器运行脚本即可自动部署项目了。
贴出脚本代码如下:
脚本autodeploy.sh
#!/bin/sh # Tomcat的webapps地址 tomcat_webapps_path=/usr/local/apache-tomcat-9.0.0.M18/webapps/ # github 项目地址 github_url=git@github.com:megoc/springboot-mybatis.git #截取"/"右边的 tmp=${github_url##*/} #截取"."左边的 project_name=${tmp%%.*} echo "========="$project_name=============== #没有更新标志 b="Already" c="up-to-date" #判断是否已经clone 过了 if [ ! -d "$project_name" ] then rm -rf $project_name #获取命令执行的结果 a=$(git clone $github_url 2>&1) cd $project_name echo $a else cd $project_name echo "=========begin git pull============" #获取pull的结果 a=$(git pull origin master 2>&1) echo $a fi #如果结果中包含相关的字段,则认为没有更新,退出不进行打包部署 echo $a echo $b echo $c #输出字符串是否包含关键字更新 if [[ $a =~ $b ]] then echo ------------no update------------- exit 0 elif [[ $a =~ $c ]] then echo ------------no update------------- exit 0 fi echo "============begin package==========" rm -rf target #开始打包 mvn package cd target/ #开始部署,此方式不妥当,应该通过gui进行部署,有兴趣的自己实现 #停止Tomcat服务 systemctl stop tomcat rm -rf ${tomcat_webapps_path}"ROOT" #移动到Tomcat目录下并自动命名 mv -u *.war ${tomcat_webapps_path}"ROOT.war" #重启Tomcat服务 systemctl start tomcat echo "=============deploy end============="
脚本略显简陋,毕竟不是专业。
脚本运行前提
安装JDK JDK和Tomcat安装安装git并配置git的SSH登录
maven 安装,最简单方式
yum install maven
也可以到官网自己去下载安装包配置
脚本使用方式:
在任何目录下新建脚本文件vi autodeploy.sh
复制以上脚本粘贴,并修改Tomcat的webapps的路径为你自己服务器上的路径,同时修改GitHub的项目地址,还有你的Tomcat的服务器的启动(systemctl start tomcat)和停止(systemctl stop tomcat)指令,和我一样的不需修改
保存退出,执行指令确保脚本可运行
chmod +x autodeploy.sh
手动运行脚本
#在脚本所处目录 ./autodeploy.sh
配置定时任务--crontab定时任务配置
#每30分钟执行一次脚本,根据自己需求改 */30 * * * * /root/autodeploy.sh
大工告成,现在只要提交到GitHub上即可,等时间一到或者直接登录服务器运行脚本即可自动部署项目了。
提示:
本脚本运行于CentOS 7 其他环境未测试。相关文章推荐
- spring boot 自动部署方案
- springBoot生成jar部署脚本
- springboot activiti关闭验证自动部署
- Springboot+shiro-ehcache 热部署自动重启时报错
- springboot基础总结以及Java系统部署脚本使用
- SPRING BOOT jar linux部署脚本
- 【IntelliJ IDEA】spring boot项目在idea实现自动部署
- springboot 生产环境部署脚本
- springboot项目利用devtools实现热部署,改动代码自动生效
- 使用Intellij IDEA 开发 Spring-boot项目 热部署,自动部署
- Intellij IDEA 使用jrebel运行spring-boot并实现自动编译进行热部署
- 外部Tomcat部署Spring boot自动关闭的解决办法
- Spring Boot在开发时实现热部署(开发时修改文件保存后自动重启应用)(spring-boot-devtools)
- spring-boot 项目修改后自动部署
- 服务器环境之6:使用maven自动部署到tomcat及编写sh一键部署脚本
- Spring Boot : 自动JSON转换和热部署(二)
- Jenkins spring boot 自动部署方案
- Spring boot centos部署启动停止脚本
- Jenkins-Docker-SpringBoot-java-git-gradle-持续集成与自动部署-实现跨服务器部署
- Spring boot项目部署脚本