通过shell脚本自动部署SpringBoot项目

通过shell脚本自动部署SpringBoot项目

在linux中安装git、maven,编写shell脚本(拉取代码、编译、打包、启动),为用户赋予执行shell脚本的权限,最后在执行shell

安装git、克隆代码

# 先列出git所有的安装包
yum list git

# 在线安装git
yum install git

看到这个说明安装成功了

通过shell脚本自动部署SpringBoot项目_第1张图片

先进入我们要存放项目的位置

cd /usr/local

克隆项目

git clone https://gitee.com/liaoweibin/ssm-crud.git

通过shell脚本自动部署SpringBoot项目_第2张图片

安装maven

如果还没安装jdk的先去安装,可以看这篇文章 Linux安装jdk设置环境变量(附jdk文件)

首先去官网下载maven安装包,再上传到linux服务器,执行下方命令进行解压

tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local

通过shell脚本自动部署SpringBoot项目_第3张图片

解压后执行下方命令配置环境变量

vim /etc/profile

要添加的内容

export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH

通过shell脚本自动部署SpringBoot项目_第4张图片

添加后执行 source /etc/profile 重新加载配置文件

测试安装是否成功

mvn -version

看到这就说明成功了

我们还要修改一下maven本地仓库地址

# 编辑配置文件
vim /usr/local/apache-maven-3.5.4/conf/settings.xml

# 加入配置(需要先在local下创建repo子目录)
/usr/local/repo

放在settings下,然后保存

通过shell脚本自动部署SpringBoot项目_第5张图片

shell脚本

我们新建一个shell脚本,把下面的代码复制进去,要把项目名称和项目地址改成正确的

#!/bin/sh
echo =================================
echo  自动化部署脚本启动
echo =================================

echo 停止原来运行中的工程
APP_NAME=ssm-crud-system

# 查找进程id是否存在,存在则停止进程
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'Stop Process...'
    kill -15 $tpid
fi

# 睡眠两秒
sleep 2

# 再次查找进程id,存在则杀死进程(双重保障进程已停止)
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'Kill Process!'
    kill -9 $tpid
else
    echo 'Stop Success!'
fi

echo 准备从Git仓库拉取最新代码
cd /usr/local/ssm-crud

echo 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成

echo 开始打包
# 先clear在打包,取消单元测试
output=`mvn clean package -Dmaven.test.skip=true`

# 进入项目打包后的文件夹
cd ssm-crud-system/target

echo 启动项目
nohup java -jar ssm-crud-system-1.0-SNAPSHOT.jar &> ssm-crud-system.log &
echo 项目启动完成

添加权限执行脚本

当我们查看文件详细时,会发现没有执行权限

通过shell脚本自动部署SpringBoot项目_第6张图片

我们执行下方命令让他有执行权限,这个命令可以让该文件拥有所有权限:读®、写(w)、执行(x)

chmod 777 auto_deploy.sh

我们可以看到拥有权限了,文件的名字也变成了绿色

通过shell脚本自动部署SpringBoot项目_第7张图片

接下来就是执行脚本

通过shell脚本自动部署SpringBoot项目_第8张图片

可以执行 netstat -tulpn 命令查看有没有该项目的端口,或者在windows电脑上访问项目地址访问进行测试

通过shell脚本自动部署SpringBoot项目_第9张图片

如果访问不了就看一下防火墙有没有打开打开

你可能感兴趣的:(Linux,centos,shell,spring,boot,linux,maven)