在linux上部署SpringBoot项目
1. 手工部署项目
-
在IDEA中开发SpringBoot项目并打成jar包。
-
将jar包上传到Linux服务器
mkdir /usr/local/app 创建目录,将项目jar包放到此目录
上传到linux的
/usr/local/app
目录:
-
启动SpringBoot程序
执行命令:java -jar 项目名称.jar
,如下:
-
检查防火墙,确保8080、6379、3306端口对外开放,访问SpringBoot项目
访问结果如下:
-
改为后台运行SpringBoot程序,并将日志输出到日志文件
目前程序运行的问题:- 线上程序不会采用控制台霸屏的形式运行程序,而是将程序在后台运行。
- 线上程序不会将日志输出到控制台,而是输出到日志文件,方便运维查阅信息
知识补充:nohub命令:英文全称 no hang up(不挂起),用于不挂断地执行指定命令,退出终端不会影响程序的运行。 语法格式:nohup Command [Arg ...] [&] 参数说明: Command:要执行的命令 Arg:一些参数,可以指定输出文件 &:让命令在后台运行 举例: nohup java -jar boot项目名称.jar &> tuantuan.log &
-
停止SpringBoot程序
2. 通过Shell脚本自动部署项目
- 在Linux中安装Git
执行命令apt-get install git
将gitee仓库中的代码克隆到linux的/usr/local
目录下:
- 在Linux中安装Maven
- 先将maven安装包上传到linux,在linux中安装maven
- 解压安装包:
tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local
- 配置环境变量:
- 配置好后,输入
source /etc/profile
重新加载profile文件后生效,效果如下:
- 修改maven的settings.xml配置文件内容:
- 编写Shell脚本
bootStart.sh
(拉去代码、编译、打包、启动),内容如下:#!/bin/sh echo ================================= echo 自动化部署脚本启动 echo ================================= echo 停止原来运行中的工程 APP_NAME=tuantuan_take_out 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/tuantuan_take_out echo 开始从Git仓库拉取最新代码 git pull echo 代码拉取完成 echo 开始打包 output=`mvn clean package -Dmaven.test.skip=true` cd target echo 启动项目 nohup java -jar tuantuan_take_out-1.0-SNAPSHOT.jar &> tuantuan_take_out.log & echo 项目启动完成
- 为用户授予执行Shell脚本的权限
执行命令chmod 777 bootStart.sh
,具体如下: - 执行Shell脚本
bootStart.sh
,效果如下:
访问项目地址,结果如下: