Spring-mvc/Spring-boot项目自动化部署实现

    笔者近期完成了两个后台项目,需要同时部署在阿里云的Centos服务器上,项目一用于后台内容管理,项目二用于给客户端APP提供API调用,为了方便操作和节省时间,两个项目的线上部署都是通过执行一个 "deploy.sh" 自动化部署脚本来实现项目的源码拉新、自动打包、应用启动的整个流程。下面结合项目的目录树结构进行说明:

 

  • apache-tomcat-8.5.15:用于从外部启动spring boot项目的tomcat,项目包格式为.war格式。
  • logs日志目录:通过log4j2指定项目日志的生成目录。
  • project_deploy:项目发布目录,需要编辑 tomcat/conf 目录下的server.xml文件,定义其中的Context属性:<Context docBase="/home/shitao/project_workspace/kaolayingyu-api/project_deploy/kaolayingyu-api" path="" reloadable="true" />。
  • project_source:源码目录,用于从远程Gittee仓库拉取最新的源代码。
  • deploy.sh:执行自动部署的脚本文件。

自动部署步骤

第一步,在本地开发环境的修改代码通过GIT提交到Gitee站点上的代码仓库;

第二步,进入project_source目录,首次在控制台输入 git clone 命令与远程仓库建立连接,并获取项目全部源码,之后的自动部署都是通过在 deploy.sh 脚本内部执行 git pull 命令从代码仓库获取最新修改的源码;

第三步,通过mvn命令将项目源码打成.war格式包。

第四步,停止正在运行的tomcat,将war包拷贝到发布目录project_deploy,将war包解压后,重新启动tomcat。

自动部署脚本deploy.sh:

project_name="kaolayingyu-api";
source_ws="/home/shitao/project_workspace/"$project_name"/project_source/"$project_name"/"
deploy_ws="/home/shitao/project_workspace/"$project_name"/project_deploy/"
tomcat_home="/home/shitao/project_workspace/"$project_name"/apache-tomcat-8.5.15"
cd $source_ws;
# 拉取最新的源代码
git pull
# 通过mvn命令生成项目的war包
mvn clean install -Dmaven.test.skip=true
cd target
# 杀死与项目相关的所有进程,与执行 sh ${tomcat_home}"/bin/shutdown.sh 效果等同
ps aux |grep -v grep |grep $project_name |awk '{print $2}'|xargs kill -9
#sh ${tomcat_home}"/bin/shutdown.sh"
rm -rf ${deploy_ws}$project_name
rm -rf ${deploy_ws}$project_name".war"
mkdir ${deploy_ws}$project_name
cp $project_name".war" ${deploy_ws}$project_name
cd ${deploy_ws}$project_name
jar xvf $project_name".war"
mv $project_name".war" ${deploy_ws}
cd WEB-INF/classes
# 修改项目配置文件,从开发环境切换到生产环境
sed -i 's/spring.profiles.active=dev/spring.profiles.active=prod/' application.properties
sh ${tomcat_home}"/bin/startup.sh"

    虽然现在很多spring-boot项目都是打成jar包,在服务端通过命令就可以直接运行了,但如果你的项目需要通过外部tomcat来运行,那么通过上面的脚本文件就可以实现项目的自动部署了,在部署多个不同的项目时候,只需要将脚本文件里面的 project-name 替换为新的项目名称就可以愉快地去干别的事情了^_^

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

思涛的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值