一、概述
在项目数量比较大和构建流程比较复杂的场景,我们一般会使用jenkins以及衍生产品来实现构建打包部署能力,但对于一些简单的项目和小众场景,我们使用简单的脚本构建部署,也未必不是一个简单便捷和节省成本的选择...我们以jenkins为例,其本质就是从远程仓库拉取代码,然后本地编译打包,然后上传到目标服务器执行启动命令,简化过程如下:
那么在一些简单的项目中,我们可不可以完全自己写一个脚本来做打包部署呢,答案是可以的...,则进入目录拉取最新代码
使用mvn命令编译打包,并输出可执行jar到target目录,如果编译失败则退出执行
找出服务进程,并发送kill执行进行终止服务进程,并且休眠10s,给服务进程足够的时间处理剩余的事情...,则进入目录拉取最新代码
使用mvn命令编译打包,并输出可执行jar到target目录,如果编译失败则退出执行
从项目目录的target文件夹拷贝可执行jar到项目工作目录
使用docker命令构建java...三、扩展
考虑到jenkins以及衍生产品处理提供完善的流程化的部署能力,也会提供详细的部署记录以及通知能力,我们也可以将脚本进行改造,来提供相应的能力,比如记录什么时间出发了打包部署,部署成功和失败的通知等