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

news/2024/7/12 2:22:39 标签: jenkins, 自动化, spring boot

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

  • 摘要
  • 新建任务工程
  • 配置Jenkins项目
    • 配置参数化构建
    • 配置源码管理
    • 构建触发器
    • 配置构建操作
  • 执行测试

摘要

基于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

http://www.niftyadmin.cn/n/876117.html

相关文章

运算常用场景总结

在实际开发场景中, 有时候&运算能实现特殊业务场景.达到简化设计高内聚效果.1. hash重定向 场景: 对于key-value数据结构Node, 考虑List<Node>如何实现Node均衡分布, 查找时间复杂度为O(1). 实现: List底层使用Array数组实现(查找为O(1)), 特殊地Array大小保持2n的…

Spring Cache + Redis实现数据缓存

Spring Cache Redis实现数据缓存Spring CacheSpring Cache的基本使用添加依赖添加配置类添加Redis配置常用缓存标签使用Spring Cache执行测试Spring Cache Spring Cache 是一个非常优秀的缓存组件。自Spring 3.1起&#xff0c;提供了类似于Transactional注解事务的注解Cache支…

位基本运算(一)

1. 基本运算 首先明确: 基本位运算规则, 不依赖正负. 定义: 对于a, b两个位向量: [aw-1, aw-2, …, a0] 和 [bw-1, bw-2, …, b0], 将a&b定义为一个长度为w的位向量, 其中第i个元素等于ai&bi, 0≤i0\leq i0≤i<w<w<w. 类似 |, ^, ~ 定义同理. 1.1 & 与 …

Spring Boot集成RocketMQ以及RocketMQ的基本使用

Spring Boot集成RocketMQ以及RocketMQ的基本使用RocketMQ概述搭建RocketMQ服务RocketMQ的基本使用添加相关依赖原生方式操作生产者消费者Spring方式操作生产者配置rocketmq执行测试生成者发送消息消费者消费消息发送不同类型的消息普通消息顺序消息延时消息批量消息过滤消息事务…

移位运算(二)

1. 分类 1.1 左移 对于一个位表示为 [ xw-1, xw-2, … , x0 ] 的操作数, x << k 会生成一个值, 其位表示为 [ xw-k-1, xw-k-1, … , x0, 0 , … , 0 ] , 也就是说, x向左移动k位, 丢弃最高的k位, 并在右端补 k 个0. 1.2 算术右移 右移一般指算术右移, 即x >> k…

两级缓存框架之j2cache的基本使用

两级缓存框架之j2cache的基本使用j2cache概述SpringBoot集成J2cache添加依赖添加配置创建缓存配置文件使用缓存j2cache概述 j2cache是两级缓存框架&#xff0c;两级缓存结构如下&#xff1a; L1&#xff1a; 进程内缓存 caffeine/ehcacheL2&#xff1a; 集中式缓存 Redis/Mem…

整数的位转换(三)

1.1 位转无符号B2Uw B2Uw( x⃗\vec xx) ∑i0w−1xi2i\sum_{i0}^{w-1} x_i2^i∑i0w−1​xi​2i    公式(1) 其中, UmaxwUmax_wUmaxw​ ∑i0w−12i\sum_{i0}^{w-1} 2^i∑i0w−1​2i 2w−12^w - 12w−1 1.2 位转补码B2Tw B2Tw( x⃗\vec xx) −xw−12w−1-x_{w-1}2^{w-1}…

位扩展与位截断(四)

常见场景 1. 当小类型向大类型转换时, 就发生了位扩展. 如 byte -> int 的隐式转换. 2. 当大类型向小类型转换时, 就发生了位截断. 如 int -> byte 的显示转换.扩展时一般值不变. 截断时值可能会改变.1. 零扩展(无符号) 宽度为 w 的位向量 u⃗\vec uu [uw−1,uw−2,...…