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


前言

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


Jenkins(三):自动化部署SpringBoot项目_第1张图片

一、安装Jenkins

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

二、配置远端服务器

1.安装SSH

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

Jenkins(三):自动化部署SpringBoot项目_第2张图片

搜索栏输入“Publish Over SSH”

Jenkins(三):自动化部署SpringBoot项目_第3张图片

勾选安装完后,重启Jenkins

Jenkins(三):自动化部署SpringBoot项目_第4张图片

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

Jenkins(三):自动化部署SpringBoot项目_第5张图片

2.配置SSH

接下来,开始配置SSH Server。

 
  

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

Jenkins(三):自动化部署SpringBoot项目_第6张图片

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

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

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

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

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

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

Jenkins(三):自动化部署SpringBoot项目_第7张图片

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

Jenkins(三):自动化部署SpringBoot项目_第8张图片

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

Jenkins(三):自动化部署SpringBoot项目_第9张图片

二、配置Git

菜单入口

Jenkins(三):自动化部署SpringBoot项目_第10张图片

配置本地的Git安装路径

Jenkins(三):自动化部署SpringBoot项目_第11张图片

三、配置Maven

配置本地的maven安装路径

Jenkins(三):自动化部署SpringBoot项目_第12张图片

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

Jenkins(三):自动化部署SpringBoot项目_第13张图片

四、配置JDK

配置本地的JDK安装路径

Jenkins(三):自动化部署SpringBoot项目_第14张图片

五、配置邮件

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

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

Jenkins(三):自动化部署SpringBoot项目_第15张图片

配置邮箱通知

Jenkins(三):自动化部署SpringBoot项目_第16张图片

设置邮件发送内容

Jenkins(三):自动化部署SpringBoot项目_第17张图片

代码内容如下:

    
    
    
    
${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志    
    
    
    
        
            本邮件由系统自动发出,无需回复!
大家好,以下为 ${PROJECT_NAME } 项目构建信息
构建结果 - ${BUILD_STATUS}

构建信息

失败用例


$FAILED_TESTS

最近提交(#${GIT_REVISION})


    ${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="
  • %d [%a] %m
  • "}
详细提交: ${PROJECT_URL}changes

注意事项: 

Jenkins(三):自动化部署SpringBoot项目_第18张图片

Jenkins(三):自动化部署SpringBoot项目_第19张图片

六、构建maven项目

1.安装maven插件

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

Jenkins(三):自动化部署SpringBoot项目_第20张图片

 安装完成后重启就好了。

2.构建maven项目

Jenkins(三):自动化部署SpringBoot项目_第21张图片

配置项目的Git仓库地址

Jenkins(三):自动化部署SpringBoot项目_第22张图片

构建触发器

Jenkins(三):自动化部署SpringBoot项目_第23张图片

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

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

Jenkins(三):自动化部署SpringBoot项目_第24张图片

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

#!/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包上传到远程服务器

Jenkins(三):自动化部署SpringBoot项目_第25张图片

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

Jenkins(三):自动化部署SpringBoot项目_第26张图片

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

Jenkins(三):自动化部署SpringBoot项目_第27张图片

发布步骤

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

Jenkins(三):自动化部署SpringBoot项目_第28张图片

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

Jenkins(三):自动化部署SpringBoot项目_第29张图片

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

Jenkins(三):自动化部署SpringBoot项目_第30张图片

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

Jenkins(三):自动化部署SpringBoot项目_第31张图片

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


总结

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

你可能感兴趣的:(Jenkins,jenkins,自动化,运维)