Jenkins(三):自动化部署SpringBoot项目


前言

在软件开发过程中,自动化部署已经成为不可或缺的一环。Jenkins是一个广泛使用的开源自动化部署工具,它提供了强大的功能和灵活的配置选项,可以帮助开发团队实现高效的持续集成和持续部署。本文将详细介绍如何使用Jenkins自动化部署Spring Boot项目,以提高开发团队的效率和产品的交付速度。


一、安装Jenkins

首先,你需要在服务器或本地机器上安装Jenkins。你可以从Jenkins官方网站下载适合你操作系统的安装程序,并按照安装向导进行安装。安装完成后,你可以通过浏览器访问Jenkins的Web界面。具体安装步骤可以看这篇文章如何安装-Jenkins

二、配置远端服务器

1.安装SSH

点击系统管理,点击插件管理

搜索栏输入"Publish Over SSH"

勾选安装完后,重启Jenkins

重启完后,登陆Jenkins,查看SSH插件是否已经安装完成

2.配置SSH

接下来,开始配置SSH Server。

复制代码

往下滑,找到SSH Servers,然后点击新增

配置远程服务器的IP地址和账号、密码

Name:取一个自己容易认的名称,如**项目测试机

Hostname:指连接机器的IP或域名

Username:连接机器的用户,必须使用一个有权限的用户,如果觉得root太大,可在服务器另建一个用户,专门用来做jenkins访问使用的

Remote Directory:远程连接上去默认访问的路径,必须存在,并且有权限

勾选下方的权限选项,并设置一个密码password,此密码为登录用户名相对应的密码。

选择使用密码方式链接,输入账号的对应密码

填完后,验证一下配置是否正常,显示"Success"则代表配置没问题。然后点击保存即可。

二、配置Git

菜单入口

配置本地的Git安装路径

三、配置Maven

配置本地的maven安装路径

进入系统管理--系统设置,找到Maven项目配置,把全局MAVEN_OPTS改为如下:

四、配置JDK

配置本地的JDK安装路径

五、配置邮件

我们用的阿里云邮,所以用的是阿里的配置

阿里巴巴企业邮箱帮助中心 (mxhichina.com)

配置邮箱通知

设置邮件发送内容

代码内容如下:

html 复制代码
<!DOCTYPE html>    
<html>    
<head>    
<meta charset="UTF-8">    
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>    
</head>    
    
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"    
    offset="0">    
    <table width="100%" cellpadding="0" cellspacing="0"  style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">    
        <tr>    
            本邮件由系统自动发出,无需回复!<br/>            
            大家好,以下为 ${PROJECT_NAME } 项目构建信息</br> 
            <td><font color="#CC0000">构建结果 - ${BUILD_STATUS}</font></td>   
        </tr>    
        <tr>    
            <td><br />    
            <b><font color="#0B610B">构建信息</font></b>    
            <hr size="2" width="100%" align="center" /></td>    
        </tr>    
        <tr>    
            <td>    
                <ul>    
                    <li>项目名称 : ${PROJECT_NAME}</li>    
                    <li>构建编号 : 第${BUILD_NUMBER}次构建</li>    
                    <li>触发原因: ${CAUSE}</li>    
                    <li>构建状态: ${BUILD_STATUS}</li>    
                    <li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>    
                    <li>构建URL: <a href="${BUILD_URL}">${BUILD_URL}</a></li>    
                    <li>测试报告: <a href="${PROJECT_URL}${BUILD_NUMBER}/allure/">${PROJECT_URL}${BUILD_NUMBER}/allure/</a></li>    
                </ul>    

<h4><font color="#0B610B">失败用例</font></h4>
<hr size="2" width="100%" />
$FAILED_TESTS<br/>

<h4><font color="#0B610B">最近提交(#${GIT_REVISION})</font></h4>
<hr size="2" width="100%" />
<ul>
${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"}
</ul>
详细提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/>

            </td>    
        </tr>    
    </table>    
</body>    
</html>

注意事项:

六、构建maven项目

1.安装maven插件

输入搜索关键字: Maven Integration Plugin 或者 Pipeline Maven Integration Plugin ,搜索到了以后,点击直接安装

安装完成后重启就好了。

2.构建maven项目

配置项目的Git仓库地址

构建触发器

我们是自己部署Git服务器(Bonobo Git Server),并没有用GitHub或者GitLab。

Bonobo Git Server 如果要用webHook的话,需要找到其仓库目录,找到对应项目的文件夹,然后添加post-receive(监听钩子)

文件内容如下,只是一个大概思路,配合Jenkins接口使用的。

bash 复制代码
#!/bin/bash
echo post-update23													
															
															
# exec git update-server-info													
															
while read oldrev newrev refname													
do													
	echo post-update4													
	branch=$(git rev-parse --symbolic --abbrev-ref $refname)												
"    if [ ""master"" == ""$branch"" ]; then"													
"        echo ""正在触发远程编译..."""													
		"# exec ""xx-cmd"" http://{jenkins-user-name}:{jenkins-user-token}@jenkins.yourdomain.com/job/{jobName}/build?token={jobToken}"											
		curl http://localhost:8081/job/test/build?token=token_test											
	else												
		"echo ""非master提交,无需编译"""											
	fi													
done

构建环境

把maven打包好的Jar包上传到远程服务器

tly-business/tly-server/target/*.jar 这个是Jenkins工作空间的项目路径

/deploy/uploadJar 这是远端服务器的Jar包存放目录(自定义的)

发布步骤

选择 "Send files or execute commands over SSH",发送文件或者执行远程命令

执行Shell脚本,操作网站服务停止、备份旧Jar包、运行新Jar包

最后点击保存即可。然后回到控制面板,点击运行,就会开始自动构建------打包------部署。

执行后,点击任务详情,左下角就有每次构建的记录

到这里,就已经完成了Jenkins的自动化部署项目了。


总结

使用Jenkins自动化部署Spring Boot项目可以大大提高开发团队的效率和产品的交付速度。通过安装Jenkins、配置项目、构建触发器和构建步骤等步骤,你可以实现持续集成和持续部署的流程。Jenkins提供了丰富的插件和灵活的配置选项,可以适应不同的项目需求。通过监控构建过程和及时处理构建失败,你可以快速定位和修复问题。最后,通过自动化部署,你可以快速将应用程序部署到目标环境中,实现快速迭代和交付高质量的软件产品。使用Jenkins的自动化部署流程,你可以节省时间和精力,让开发团队专注于软件开发和质量保证,从而提升整体的开发效率和产品质量。

相关推荐
乘云数字DATABUFF3 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
荣--5 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森5 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜5 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
SelectDB6 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode8 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220709 天前
如何搭建本地yum源(上)
运维
大树8811 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠11 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质12 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务