开发者

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

开发者 https://www.devze.com 2023-01-13 10:54 出处:网络 作者: 小学生波波
目录1、Jenkins介绍1.1、概念1.2、优势1.3、Jenkins目的2、环境准备3、Jenkins下载3.1、下载3.2、运行3.3、问题解决4、Jenkins配置4.1、用户配置4.2、系统配置4.3、全局工具配置-最重要5、新建项目7、测试8、错误解决
目录
  • 1、Jenkins介绍
    • 1.1、概念
    • 1.2、优势
    • 1.3、Jenkins目的
  • 2、环境准备
    • 3、Jenkins下载
      • 3.1、下载
      • 3.2、运行
      • 3.3、问题解决
    • 4、Jenkins配置
      • 4.1、用户配置
      • 4.2、系统配置
      • 4.3、全局工具配置-最重要
    • 5、新建项目
      • 7、测试
        • 8、错误解决

          1、Jenkins介绍

          1.1、概念

          • Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具
          • Jenkins是一个可扩展的持续集成引擎
          • 用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能

          持续集成

          • 就是通常所说的CI(Continues Integration),可以说是现代软件技术开发的基础
          • 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也意味着每天可能会发生多次集成。

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

          1.2、优势

          • Jenkins是一个自包含的基于java的程序,可以开箱即用,包含Windows、linux等操作系统的软件包
          • Jenkins可以通过其web界面轻松设置和配置,其中包括动态错误检查和内置帮助
          • 在插件中心中有数百个插件,Jenkins集成了持续集成和持续交付工具链中的几乎所有工具
          • Jenkins可以轻松地跨多台机器分配工作,帮助更快地跨多个平台进行构建、测试和部署
          • Jenkins可以通过其插件架构进行扩展,为Jenkins所能做的事情提供了几乎无限的可能性
          • 作为可扩展的自动化服务器,Jenkins可以用作简单的CI服务器,也可以变成任何项目的持续交付中心

          1.3、Jenkins目的

          • Jenkins 主要是监控软件开发流程,快速显示问题。所以能保证开发人员以及相关人员省时省力提高开发效率
          • CI系统在整个开发过程中的主要作用是控制:当系统在代编程客栈码存储库中探测到修改时,它将运行构建的任务委托给构建过程本身
          • 如果构建失败了,那么CI系统将通知相关人员,然后继续监视存储库。它的角色看起来是被动的;但它确能快速反映问题

          2、环境准备

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

          • JDK8(我这里就是JDK8的环境)
          • git(我这里使用的版本是:2.37.1.windows.1)
          • maven(我这里使用的版本是:3.8.6)
          • 一个保存SpringBoot项目代码的git仓库(注意:该项目的启动端口不能与Jenkins相同!J开发者_Pythonenkins默认为8080)

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

          3、Jenkins下载

          3.1、下载

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

          下载war包即可,如下:

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

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

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

          下载的包如下:

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

          3.2、运行

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

          java -jar jenkins.war

          如下:

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

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

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

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

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

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

          3.3、问题解决

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

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

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

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

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

          3、编辑这个文件

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

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

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

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

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

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

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

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

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

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

          4、Jenkins配置

          4.1、用户配置

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

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

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

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

          然后:

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

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

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

          4.2、系统配置

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

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

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

          下面几项必须配置:

          • maven
          • git
          • JDK

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

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

          然后继续配置JDK:

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

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

          然后继续配置git:

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

          最后配置maven:

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

          安装maven插件:

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

          安装插件进度页面:

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

          然后重启一下Jenkins

          5、新建项目

          新建Item:

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

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

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

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

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

          如下:

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

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

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

          clean package -DskipTests install

          如下:

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

          继续往下翻,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掉
          

          如下:

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

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

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

          这样查看日志:

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

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

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

          也可以在首页进行构建:

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

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

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

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

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

          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构建后就访问页面,如下:

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

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

          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,等一分钟后,再刷新页面,看页面如下:

          python

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

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

          8、错误解决

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

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

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

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

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

          0

          精彩评论

          暂无评论...
          验证码 换一张
          取 消

          关注公众号