亲宝软件园·资讯

展开

Jenkins自动化部署SpringBoot项目的实现

小学生波波 人气:0

1、Jenkins介绍

1.1、概念

持续集成

每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件

1.2、优势

1.3、Jenkins目的

2、环境准备

我们本文主要介绍在windows系统中安装和使用Jenkins,那么在此之前,请先保证你电脑上有如下环境:

我这里的SpringBoot项目git地址是:https://gitee.com/colinWu_java/JenkinsTest.git,项目启动端口是:8001

3、Jenkins下载

3.1、下载

下载网址:https://get.jenkins.io/war-stable

下载war包即可,如下:

image-20230106153727242

注意JDK的版本,你下载的版本太高的话,需要JDK的版本也会很高,所以看清楚了再下载,下载需要时间很久。我这里选择的是【2.346.3】,然后下载:

image-20230106171312403

下载的包如下:

image-20230106153429993

3.2、运行

然后用cmd进入目录后,运行jenkins:

java -jar jenkins.war

如下:

image-20230106155150221

如果你的JDK版本不支持的话就会报错了,如下:

image-20230106153935603

此时,你要么就升级你的JDK,要么就换一个低版本的jenkins,推荐换一个低版本的jenkins,因为JDK版本升级的话影响太广泛了

然后访问jenkins,在浏览器输入:http://localhost:8080,如下:

image-20230106155239337

3.3、问题解决

如果上面界面等待几秒,还是这个界面,那就是jenkins镜像有问题,按照下面步骤解决

1、第一次运行jenkins后,会在C盘的用户目录中,生成一个.jenkins文件夹,进入到该文件夹

image-20230106155358225

2、找到文件:hudson.model.UpdateCenter.xml

image-20230106155458946

3、编辑这个文件

image-20230106155556538

镜像有很多种,大家可以自行百度一下

4、重启jenkins,再访问http://localhost:8080,就会进入到密码认证界面:

image-20230106155817278

cmd窗口中,会打印密码,直接复制填入即可

image-20230106155854298

然后加载一会之后出现如下配置界面了:

image-20230106160036499

点击【安装推荐的插件】即可:

image-20230106173438387

4、Jenkins配置

4.1、用户配置

上面页面可能花的时间会比较久,安装完成后是这样的界面:

image-20230106173700329

我这里设置到账号是:wjb,密码是:itsource123,然后点击【保存并完成】:

image-20230106173754353

然后:

image-20230106173951689

点击【开始使用Jenkins】按钮即可

image-20230106174050023

4.2、系统配置

image-20230106174448510

image-20230106174602728

4.3、全局工具配置-最重要

下面几项必须配置:

image-20230106174734798

image-20230106174833096

然后继续配置JDK:

image-20230106174903150

image-20230106175156566

然后继续配置git:

image-20230108142434449

最后配置maven:

image-20230106183900230

安装maven插件:

安装插件进度页面:

image-20230106184130921

然后重启一下Jenkins

5、新建项目

新建Item:

image-20230106183317074

image-20230106184604369

在源码管理设置模块,选择Git,然后输入Gitee项目仓库地址,如下图:

image-20230106184742768

继续往下翻,构建触发器处,勾选Poll SCM,并输入如下信息:* * * * *

如下:

image-20230106184917248

5个星号这是什么意思? 这5个符号的位置,分别表示分、时、日、月、周 上图中的五个*,其含义已由黄色字体显示,表示每分钟轮询一次Gitee仓库,如果仓库有更新,则重新拉取项目,进行持续集成与持续部署。 如果输入H/5 * * * *,则表示每5分钟轮询一次。

继续下翻,Build处,添加如下格式的Goals and options:

clean package -DskipTests install

如下:

image-20230106192218619

继续往下翻,POST Steps 处,勾选 Run regardless of build result,然后添加构建步骤(Add post-build step),选择执行Windows批处理命令(Execute Windows batch command),然后输入下面内容:

@echo off
set BUILD_ID=DONTKILLME
set port=8001
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do taskkill /pid %%m -t -f

xcopy C:\Users\it206\.jenkins\workspace\JenkinsTest\target\sp-test.jar F:\jenkins\workspace\JenkinsTest\ /Y
echo 复制jar包完成
echo 执行【sp-test.jar】---开始
start javaw -jar F:\jenkins\workspace\JenkinsTest\sp-test.jar >> springboot.log 2>&1 &
echo 执行【sp-test.jar】---结束

exit

相关参数介绍:

1、set BUILD_ID=DONTKILLME
Jenkins默认会在Build结束后Kill掉所有的衍生进程,设置不要kill

2、xcopy 源文件 目的文件
将源文件复制到目标文件夹下
为什么要复制一份?
下次构建的时候,需要删除现有的jar,重新构建新的jar;如果直接运行生成的jar,下次构建的时候,无法删除,构建失败。

3、echo xxx
这里只是在jenkins的控制台输出日志信息

4、start javaw -jar xxx.jar &    这里是告诉系统,我的jar文件是后台执行,最后的符号 & 一定要加,否则jenkins会认为任务结束,会把我们的jar强制kill掉

如下:

image-20230108153730187

最后点击【保存】按钮,然后开始构建:

image-20230108153823283

这样查看日志:

image-20230108154025755

然后就可以看到日志详情了:

image-20230108153641253

也可以在首页进行构建:

image-20230106193301196

然后看本地磁盘,jar包已经复制到我指定目录了:

image-20230108154121248

但是我指定的日志文件还是回生成在Jenkins的默认目录,如下:

image-20230108154503441

7、测试

我Gitee上的SpringBoot项目地址是:https://gitee.com/colinWu_java/JenkinsTest.git

测试接口代码如下:

package cn.itsource.controller;

import org.springframework.web.bind.annotation.*;

/**
 * <p>TestController</p>
 *
 * @author 波波老师(微信 : javabobo0513)
 */
@RestController
public class TestController {

    @GetMapping("/test")
    public String test(){
        return "欢迎来到SpringBoot奇妙世界!";
    }

}

然后Jenkins构建后就访问页面,如下:

image-20230106192944940

完美,可以正常显示接口的返回数据,部署成功了,然后我们修改一下接口的返回数据,改成下面这样:

package cn.itsource.controller;

import org.springframework.web.bind.annotation.*;

/**
 * <p>TestController</p>
 *
 * @author 波波老师(微信 : javabobo0513)
 */
@RestController
public class TestController {

    @GetMapping("/test")
    public String test(){
        return "欢迎来到SpringBoot奇妙世界!Jenkins学习";
    }

}

然后代码提交到gitee,等一分钟后,再刷新页面,看页面如下:

image-20230108145620833

内容是我们修改后的值,说明Jenkins确实重新拉取项目重新部署了,nice啊,以后我们修改完代码后直接提交就可以了,部署就不用管了,是不是很香

8、错误解决

如果你Jenkins的控制台中出现如下日志信息:

image-20230108153145084

在全局安全配置里面,勾选上这个参数即可:

image-20230108153402788

 到此这篇关于Jenkins自动化部署SpringBoot项目的实现的文章就介绍到这了,更多相关Jenkins自动化部署SpringBoot内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

加载全部内容

相关教程
猜你喜欢
用户评论