手动部署
1、在IDEA中开发SpringBoot项目并打成jar包
先在本地的idea中启动当前的demo工程,看工程是否正常访问
注意事项:在pom.xml中要加上maven插件,否则无法运行jar包
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
2、将jar包上传到Linux服务器
在/usr/local下创建目录app
mkdir /usr/local/app
切换到app目录下
cd /usr/local/app
执行指令,进行jar包上传
rz
3、启动SpingBoot程序
java -jar XXX-1.0-SNAPSHOT.jar
注意事项:检查防火墙,确保8080端口对外开放,访问SpringBoot项目
firewall-cmd --zone=public --list-ports
如果防火墙没有放开8080端口,还需要放开对应的端口号,执行如下指令
如果防火墙没有放开8080端口,还需要放开对应的端口号,执行如下指令
4、后台运行程序
nohup命令:英文全称 no hang up(不挂起),用于不挂断地运行指定命令,退出终端不会影响程序的运行
语法格式: nohup Command [ Arg … ] [&]
参数说明:
Command:要执行的命令
Arg:一些参数,可以指定输出文件
&:让命令在后台运行
# 后台运行 java -jar 命令,并将日志输出到hello.log文件
nohup java -jar XXX-1.0-SNAPSHOT.jar &> hello.log &
5、停止SpringBoot项目
# 查看java进程
ps -ef | grep java
# 杀死指定进程
kill -9 XXX
自动部署
1、安装Git
yum list git
yum install git
git --version
2、克隆远程仓库代码
cd /usr/local/
git clone https://gitee.com/XXX.git
3、准备shell脚本
#!/bin/sh
echo =================================
echo '自动化部署脚本启动'
echo =================================
echo '停止原来运行的工程'
APP_NAME=XXX
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/XXX
echo '开始从Git仓库拉取最新代码'
git pull
echo '代码拉取完成'
echo '开始打包(跳过单元测试)'
output=`mvn clean package -Dmaven.test.skip=true`
cd target
echo '启动项目'
nohup java -jar XXX-1.0-SNAPSHOT.jar &> XXX.log &
echo '项目自动部署完成'