Linux 自动部署SpringBoot项目

手动部署

1、在IDEA中开发SpringBoot项目并打成jar包

先在本地的idea中启动当前的demo工程,看工程是否正常访问

注意事项:在pom.xml中要加上maven插件,否则无法运行jar包

xml 复制代码
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

2、将jar包上传到Linux服务器

shell 复制代码
在/usr/local下创建目录app
mkdir /usr/local/app

切换到app目录下
cd /usr/local/app

执行指令,进行jar包上传
rz

3、启动SpingBoot程序

shell 复制代码
java -jar XXX-1.0-SNAPSHOT.jar

注意事项:检查防火墙,确保8080端口对外开放,访问SpringBoot项目

shell 复制代码
firewall-cmd --zone=public --list-ports

如果防火墙没有放开8080端口,还需要放开对应的端口号,执行如下指令

shell 复制代码
如果防火墙没有放开8080端口,还需要放开对应的端口号,执行如下指令

4、后台运行程序

nohup命令 :英文全称 no hang up(不挂起),用于不挂断地运行指定命令,退出终端不会影响程序的运行
语法格式: nohup Command [ Arg ... ] [&]
参数说明:

Command:要执行的命令

Arg:一些参数,可以指定输出文件

&:让命令在后台运行

shell 复制代码
# 后台运行 java -jar 命令,并将日志输出到hello.log文件
nohup java -jar XXX-1.0-SNAPSHOT.jar &> hello.log &

5、停止SpringBoot项目

shell 复制代码
# 查看java进程
ps -ef | grep java

# 杀死指定进程
kill -9 XXX

自动部署

1、安装Git

shell 复制代码
yum list git			
yum install git

git --version

2、克隆远程仓库代码

shell 复制代码
cd /usr/local/

git clone https://gitee.com/XXX.git

3、准备shell脚本

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 '项目自动部署完成'
相关推荐
Atri厨1 分钟前
awk入门练习题
linux·运维·服务器
胖好白6 分钟前
【RK3588开发】RK3588的Debian系统环境搭建
linux·vscode·debian
Alex Cafu7 分钟前
Linux网络编程1(OSI模型与TCP/IP协议栈)
linux·c语言·网络·tcp/ip
极客小云23 分钟前
【2026年Docker国内镜像源最新可用清单与配置指南】
运维·docker·容器
乾元1 小时前
生成对抗样本在网络安全中的工程化解读——AI 误报、误判与对抗的真实边界
运维·网络·人工智能·python·安全·web安全
qq_12498707531 小时前
基于微信小程序的校园跑腿系统的设计与实现(源码+论文+部署+安装)
spring boot·微信小程序·小程序·毕业设计·计算机毕业设计
zeijiershuai1 小时前
Linux、Linux常用命令、Linux软件安装、Linux项目部署
linux·运维·服务器
小宇的天下1 小时前
Calibre nmDRC 高级边缘处理与输出控制(17)
linux·运维·lvs
java_logo1 小时前
Caddy Docker 容器化部署指南
运维·docker·容器·caddy部署·caddy部署文档·caddy部署教程·docker部署caddy
有一个好名字1 小时前
Spring Boot 依赖注入指南:多种方式深度剖析与代码演示
java·服务器·spring boot