Jenkins自动化部署后端Spring Boot项目

本文详细介绍了如何使用Jenkins自动化部署SpringBoot后端项目,包括新建Jenkins任务、配置参数化构建、源码管理、构建触发器以及构建操作。通过参数化构建灵活获取配置参数,结合Git进行源码管理,并设置构建触发器实现自动构建。在构建操作中执行清理、打包、部署等步骤,最后通过Shell脚本自动化处理服务启动和停止,确保项目的顺利部署。
摘要由CSDN通过智能技术生成

摘要

基于Jenkins完成基本配置以及懂得Jenkins的基本使用条件下,使用Jenkins自动化部署后端SpringBoot项目

Jenkins基本操作参考:Jenkins的四种安装部署方式以及Jenkins的基本配置与基本使用

新建任务工程

在这里插入图片描述

配置Jenkins项目

配置参数化构建

使用参数化构建,可以在shell脚本中通过 $参数名得到配置的参数值,从而减少将 shell 脚本写死的情况

在这里插入图片描述

配置源码管理

选择Git,从Git仓库拉取源码进行构建

在这里插入图片描述

构建触发器

Jenkins自动触发构建参考:Jenkins结合Gitee、Github、Gitlab、SVN自动构建部署

配置构建操作

执行清理、打包、跳过测试操作,稍后使用生成的Jar文件。

在这里插入图片描述

配置Shell脚本,代替人为重复操作。

在这里插入图片描述

sleep 2

path=/usr/local/program/myweb

echo app name : $appName

echo app run path : $path


api_pid=`ps -ef | grep "$appName.jar" | grep -v grep | awk '{print $2}'`

echo api_pid = $api_pid

if [ "$api_pid" != "" ]; then
        echo kill api
        kill -9 $api_pid

        echo sleep 3s
        sleep 1
        echo sleep 2s
        sleep 1
        echo sleep 1s
        sleep 1
fi


mv /root/.jenkins/workspace/dataGenerateTool/admin/target/$appName.jar $path

cd $path


BUILD_ID=dontKillMe

nohup java -jar $appName.jar >> myweb.log 2>&1 &

echo $appName start success

exit 0

执行测试

传入构建参数,执行构建操作。

在这里插入图片描述

构建日志

17:09:16 [dataGenerateTool] $ /usr/local/maven/bin/mvn -s /usr/local/maven/conf/settings.xml -gs /usr/local/maven/conf/settings.xml clean package -Dmaven.test.skip=true
17:09:19 [INFO] Scanning for projects...
17:09:20 [INFO] ------------------------------------------------------------------------
17:09:20 [INFO] Reactor Build Order:
17:09:20 [INFO] 
17:09:20 [INFO] dataGenerateTool                                                   [pom]
17:09:20 [INFO] admin                                                              [jar]
17:09:20 [INFO] 
17:09:20 [INFO] ----------------------< cn.ybzy:dataGenerateTool >----------------------
17:09:20 [INFO] Building dataGenerateTool 0.0.1-SNAPSHOT                           [1/2]
17:09:20 [INFO] --------------------------------[ pom ]---------------------------------
17:09:21 [INFO] 
17:09:21 [INFO] --- maven-clean-plugin:3.1.0:clean (default-clean) @ dataGenerateTool ---
17:09:21 [INFO] 
17:09:21 [INFO] --- spring-boot-maven-plugin:2.3.8.RELEASE:repackage (repackage) @ dataGenerateTool ---
17:09:22 [INFO] 
17:09:22 [INFO] ---------------------------< cn.ybzy:admin >----------------------------
17:09:22 [INFO] Building admin 0.0.1-SNAPSHOT                                      [2/2]
17:09:22 [INFO] --------------------------------[ jar ]---------------------------------
17:09:23 [INFO] 
17:09:23 [INFO] --- maven-clean-plugin:3.1.0:clean (default-clean) @ admin ---
17:09:23 [INFO] Deleting /root/.jenkins/workspace/dataGenerateTool/admin/target
17:09:23 [INFO] 
17:09:23 [INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ admin ---
17:09:23 [INFO] Using 'UTF-8' encoding to copy filtered resources.
17:09:23 [INFO] Copying 2 resources
17:09:23 [INFO] Copying 1 resource
17:09:23 [INFO] 
17:09:23 [INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ admin ---
17:09:24 [INFO] Changes detected - recompiling the module!
17:09:24 [INFO] Compiling 20 source files to /root/.jenkins/workspace/dataGenerateTool/admin/target/classes
17:09:30 [INFO] /root/.jenkins/workspace/dataGenerateTool/admin/src/main/java/cn/ybzy/datageneratetool/service/impl/StationServiceImpl.java: Some input files use or override a deprecated API.
17:09:30 [INFO] /root/.jenkins/workspace/dataGenerateTool/admin/src/main/java/cn/ybzy/datageneratetool/service/impl/StationServiceImpl.java: Recompile with -Xlint:deprecation for details.
17:09:30 [INFO] 
17:09:30 [INFO] --- maven-resources-plugin:3.1.0:testResources (default-testResources) @ admin ---
17:09:30 [INFO] Not copying test resources
17:09:30 [INFO] 
17:09:30 [INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ admin ---
17:09:30 [INFO] Not compiling test sources
17:09:30 [INFO] 
17:09:30 [INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ admin ---
17:09:31 [INFO] Tests are skipped.
17:09:31 [INFO] 
17:09:31 [INFO] --- maven-jar-plugin:3.2.0:jar (default-jar) @ admin ---
17:09:32 [INFO] Building jar: /root/.jenkins/workspace/dataGenerateTool/admin/target/admin-0.0.1-SNAPSHOT.jar
17:09:32 [INFO] 
17:09:32 [INFO] --- spring-boot-maven-plugin:2.3.8.RELEASE:repackage (repackage) @ admin ---
17:09:33 [INFO] Replacing main artifact with repackaged archive
17:09:33 [INFO] ------------------------------------------------------------------------
17:09:33 [INFO] Reactor Summary for dataGenerateTool 0.0.1-SNAPSHOT:
17:09:33 [INFO] 
17:09:33 [INFO] dataGenerateTool ................................... SUCCESS [  2.438 s]
17:09:33 [INFO] admin .............................................. SUCCESS [ 10.890 s]
17:09:33 [INFO] ------------------------------------------------------------------------
17:09:33 [INFO] BUILD SUCCESS
17:09:33 [INFO] ------------------------------------------------------------------------
17:09:33 [INFO] Total time:  14.124 s
17:09:33 [INFO] Finished at: 2022-06-08T09:09:33Z
17:09:33 [INFO] ------------------------------------------------------------------------

17:10:01 + sleep 2
17:10:03 + path=/usr/local/program/myweb
17:10:03 + echo app name : admin-0.0.1-SNAPSHOT
17:10:03 app name : admin-0.0.1-SNAPSHOT
17:10:03 + echo app run path : /usr/local/program/myweb
17:10:03 app run path : /usr/local/program/myweb
17:10:03 ++ ps -ef
17:10:03 ++ grep admin-0.0.1-SNAPSHOT.jar
17:10:03 ++ grep -v grep
17:10:03 ++ awk '{print $2}'
17:10:03 + api_pid=7385
17:10:03 + echo api_pid = 7385
17:10:03 api_pid = 7385
17:10:03 + '[' 7385 '!=' '' ']'
17:10:03 + echo kill api
17:10:03 kill api
17:10:03 + kill -9 7385
17:10:03 + echo sleep 3s
17:10:03 sleep 3s
17:10:03 + sleep 1
17:10:04 + echo sleep 2s
17:10:04 sleep 2s
17:10:04 + sleep 1
17:10:05 + echo sleep 1s
17:10:05 sleep 1s
17:10:05 + sleep 1
17:10:06 + mv /root/.jenkins/workspace/dataGenerateTool/admin/target/admin-0.0.1-SNAPSHOT.jar /usr/local/program/myweb
17:10:06 + cd /usr/local/program/myweb
17:10:06 + echo start success
17:10:06 admin-0.0.1-SNAPSHOT start success
17:10:06 + exit 0
17:10:06 + nohup java -jar admin-0.0.1-SNAPSHOT.jar
17:10:06 Finished: SUCCESS

Linux服务器上查看验证

[root@bp-centos-0 dataGenerateTool]# cd /usr/local/program/myweb/
[root@bp-centos-0 myweb]# ls
admin-0.0.1-SNAPSHOT.jar  myweb.log
[root@bp-centos-0 myweb]# ps -ef  | grep admin-0.0.1-SNAPSHOT.jar
root     29274     1 78 09:19 ?        00:00:10 java -jar admin-0.0.1-SNAPSHOT.jar
root     29956 20326  0 09:19 pts/4    00:00:00 grep --color=auto admin-0.0.1-SNAPSHOT.jar
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodeDevMaster

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值