linux3==阿里云ECS centos8基于Shell脚本自动部署springboot项目(IDEA手动push,linux自动pull、package、run)

操作步骤如下:

1). 在Gitee上创建远程仓库,并将本地的项目代码推送到远程仓库中(IDEA add commit push)

linux3==阿里云ECS centos8基于Shell脚本自动部署springboot项目(IDEA手动push,linux自动pull、package、run)_第1张图片

2). 在Linux中安装jdk,mysql(如果要使用linux的MySQL数据的话),Git

java -version

git --version

linux3==阿里云ECS centos8基于Shell脚本自动部署springboot项目(IDEA手动push,linux自动pull、package、run)_第2张图片

 在想要存放项目代码的地方新建文件夹(文件夹名字为项目名,比如hello)并CD到hello文件夹下,手动克隆代码,如从gitee克隆代码

linux3==阿里云ECS centos8基于Shell脚本自动部署springboot项目(IDEA手动push,linux自动pull、package、run)_第3张图片

cd /usr/local/XXX

git clone XXX.git

3). 在Linux中安装maven到/usr/local目录

maven安装包下载地址 Index of /dist/maven/maven-3http://archive.apache.org/dist/maven/maven-3/

linux3==阿里云ECS centos8基于Shell脚本自动部署springboot项目(IDEA手动push,linux自动pull、package、run)_第4张图片 将压缩包上传到/usr/local目录

  解压缩到该目录

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

 在/etc/profile配置文件中配置环境变量

 vim /etc/profile

 修改配置文件,进入到命令模式,按G切换到最后一行,按a/i/o进入插入模式,然后在最后加入如下内容 :
export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH

然后按ESC进入到命令模式,输入 :wq 保存并退出

linux3==阿里云ECS centos8基于Shell脚本自动部署springboot项目(IDEA手动push,linux自动pull、package、run)_第5张图片

要想让配置的环境变量生效,还需要执行如下指令:

source /etc/profile

修改maven的settings.xml配置文件,配置本地仓库地址

A. 切换目录

cd /usr/local/apache-maven-3.5.4/conf

B. 编辑settings.xml配置文件

vim settings.xml

在其中增加如下配置,配置本地仓库地址:

/usr/local/repo

并在settings.xml中的标签中,配置阿里云的私服:

 
    alimaven 
    central 
    aliyun maven 
    http://maven.aliyun.com/nexus/content/groups/public/
 

 =====================================================================

4). 编写Shell脚本(拉取代码、编译、打包、启动)

建个txt,名字和后缀名改为bootStart.sh,输入以下内容。该文件的意思:停止原运行中的项目,从远程仓库拉取最新的项目代码,使用maven打包拉下来的项目,执行项目,并输出日志到target目录下。

#!/bin/sh
echo =================================
echo  Automated deployment script startup
echo =================================

#停止原运行中的项目
echo Stop the original running project
APP_NAME=项目名字比如hello项目这里写hello

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
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 Prepare to pull the latest code from GIT
#打开项目所在的文件夹
cd /usr/local/项目文件夹比如hello项目这里写hello

echo Start pulling the latest code from GIT
#本地与远程不同的话,强制更新为远程
git reset --hard
#开始从远程拉取
git pull
echo Code pull completed

#执行打包命令
echo Start packing
output=`mvn clean package -Dmaven.test.skip=true`

#打开打包之后存放jar包的文件夹
cd target

echo Start project
#通过nohub方式启动jar包,并输出日志到jar所在文件夹同级别的日志文件
nohup java -jar 项目名字-1.0-SNAPSHOT.jar &> 日志名字.log &
echo Project launch completed

修改相关中文标注的地方为具体项目信息。

上传到linux,比如上传到/usr/local/sh

5). 为用户授予执行Shell脚本的权限

上传成功后授权,授权让任何用户都可 读写执行 该sh文件

cd /usr/local/sh

chmod 777 bootStart.sh 

6). 执行Shell脚本

cd /usr/local/sh

./bootStart.sh 

linux3==阿里云ECS centos8基于Shell脚本自动部署springboot项目(IDEA手动push,linux自动pull、package、run)_第6张图片

=================================================================

完成

你可能感兴趣的:(linux,spring,spring,boot,java)