我们在公司中通常会将项目发布在服务器或者虚拟服务器(云端)上面,但是这些往往都要收费或者只对企业开放,因此我们在学习中使用的是Linux系统,将项目部署发布在Linux系统上来模拟项目的发布。

我们可以使用手动部署或者自动部署两种方式来发布项目

①手动部署:

将maven项目打包进行打包,找到target文件夹,将里面的.jar后缀的文件上传到Linux系统中,在Linux系统下cd到所在的目录,输入Java -jar boot工程.jar 命令,此时springboot项目就启动成功了。但是由于这种方式启动的项目会沾满全部屏幕,我们无法在进行其他操作,因此我们都是都是使用不挂起的方式来启动springboot项目。

cd到项目所在目录下,输入指令nohup java -jar boot工程.jar &>boot工程.log &命令,此时系统就会在后台启动该项目,并将对应的日志信息存储到工程.log文件中,注意:最后的&代表的是让命令在后台运行,不可以丢掉。

②自动部署:

在Linux中使用Shell脚本自动部署项目大概有以下5个步骤

1.在Linux中安装Git

使用yum list git命令列出git在线安装包,再输入yum install git来在线安装git

2.在Linux中安装maven

将maven安装包上传到Linux,输入tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local,将压缩包解压还原到/usr/local目录下。

输入vim/etc/profile 修改配置文件,加入如下内容

export MAVEN_HOME=/usr/local/apache-maven-3.5.4

export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH

接着输入source /etc/profile重载配置

接下来可以输入maven -version,看到Maven home:/usr/local/apache-maven-3.5.4说明maven安装成功。

接着输入vim /local/apache-maven-3.5.4/conf/settings.xml来配置仓库

找到<!-- interactiveMode,在上面添加以下内容

<localRepository>/usr/local/repo</localRepository>

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

bootStart.sh

#!/bin/sh

echo =================================

echo  自动化部署脚本启动

echo =================================

echo 停止原来运行中的工程

APP_NAME=helloworld

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 准备从Git仓库拉取最新代码

cd /usr/local/helloworld

echo 开始从Git仓库拉取最新代码

git pull

echo 代码拉取完成

echo 开始打包

output=`mvn clean package -Dmaven.test.skip=true`

cd target

echo 启动项目

nohup java -jar helloworld-1.0-SNAPSHOT.jar &> helloworld.log &

echo 项目启动完成

将helloworld替换为项目名即可

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

由于bootStart.sh文件此时只具有读权限,没有执行的权限,所以是无法直接执行的,此时我们需要对该文件授予读写执行的权限。cd到该文件所在目录,输入chmod 777 bootStart.sh授予其读写执行的权限

5.执行Shell脚本

授权成功后就可以执行该shell文件了,输入./bootStart.sh即可。

注意:该shell会从git上拉去该项目。如果是第一次执行,建议先使用git clone指令将该项目克隆到本地。等文件启动成功后项目就发布成功啦。

    

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐