SpringBoot:Jenkins 实现持续集成

SpringBoot:Jenkins 实现持续集成

环境准备

相关配置

  • Jenkins初始化后,需要按照提示路径打开密码文件

    "图片描述"

  • 选择安装推荐插件

    "图片描述"

    "图片描述"

  • 安装指定插件 Deploy to container、PowerShell、Publish Over SSH、FindBugs 和DOS Trigger (后面用到)

  • 创建管理员

    "图片描述"

  • 改下端口8090(这个可以不用改,貌似没什么差别,都可以用localhost:8080/login登陆)

    "图片描述"

  • Welcome to Jenkins!

    "图片描述"

  • 系统设置

    "图片描述"

    "图片描述"

    ​ 添加utf-8编码环境变量和修改jenkins访问url

  • 全局工具配置

    "图片描述"

    ​ 主要配置Maven settings文件路径、JDK、Git、Maven路径

系统部署

  • New 任务

  • 创建软件项目

    "图片描述"

  • General

    "图片描述"

    ​ 配置github项目url、丢弃旧的构建、最大保留构建数

  • Source Code Management

    "图片描述"

    ​ 配置仓库地址和github账号密码

  • Build Triggers

    "图片描述"

    ​ 配置自动构建,星期1-7,每天12:00和23:00

  • Build Environment (Linux ssh远程连接运行jar包)

    "图片描述"

    ​ 这里的ssh server,进入系统管理 > 系统设置 选择 Publish over SSH 配置

  • Build (这里是window dos命令启动)

    "图片描述"

    • 结束其中一个名字为jar的jps进程

      1
      2
       for /f "tokens=1,2 delims= " %%a in ('jps') do (if "%%b" == "jar" (set pid=%%a))
      if DEFINED pid taskkill /pid %pid% /f
    • 复制构建好的jar包到指定目录

      1
      2
      3
      4
      5
      6
       echo 正在复制,请稍候...
      cd C:\Program Files (x86)\Jenkins\workspace
      for /f "delims==" %%a in ('dir /b /s *-0.0.1-SNAPSHOT.jar')do copy /y "%%a" D:\MicroService
      ::/f参数使其分析dir命令的输出结果,并用dir 的/s参数搜寻子目录
      echo 复制完成
      move D:\MicroService\eureka-client-common-0.0.1-SNAPSHOT.jar D:\MicroService\lib\eureka-client-common-0.0.1-SNAPSHOT.jar
    • 延时60秒命
      ping -n 60 127.0.0.1 bat

  • jar包运行命令

    1
    2
    ::eureka-client-file
    start javaw -Xmx128m -Xss256k -XX:ParallelGCThreads=2 -Dloader.path="lib/" -jar eureka-client-file-0.0.1-SNAPSHOT.jar --DASPush=false --server.port=2011 > log\eureka-client-file.log 2>&1 &

    ​ 配置构建步骤,先杀掉对应jar进程,maven部署,然后再启动jar

    • Linux环境下的话,安装PowerShell插件,脚本类似

    kill -9 $(ps -ef | grep spring-boot-demo | grep -v grep | awk '{print $2}')

    cd /Users/mengday/.jenkins/workspace/spring-boot-demo/target

    ​ 配合Build Environment (Linux ssh远程连接运行jar包)

  • Post-build Actions

    "图片描述"

    ​ 配置FindBugs,这里用默认配置

    • 如果想自动部署war到tomcat下,那么前面安装的插件(Deploy to container)就有用处了

      "图片描述"

  • 自动构建

    "图片描述"

    ​ 注意,如果maven是deploy,pom.xml要添加nexus私服,不然会报错

    Deployment failed: repository element was not specified in the POM inside distributionManagement element or in -DaltDeploymentRepository=id::layout::url parameter -> [Help 1]

  • 构建日志和FindBugs

    "图片描述"

    "图片描述"

  • 杀掉相应端口进程(ANSI编码才不会乱码)

    @echo off
    setlocal enabledelayedexpansion
    ::set port=9090
    set /p port=请输入端口号:
    for /f “tokens=1-5” %%a in (‘netstat -ano ^| find “:%port%”‘) do (
    if “%%e%” == “” (

    set pid=%%d
    

    ) else (

    set pid=%%e
    

    )
    echo !pid!
    taskkill /f /pid !pid!
    )
    pause

源码:https://github.com/qq1028951741/springbootdemo or 右上角github进去,springbootdemo项目,如果对您有帮助,麻烦点下star,谢谢


人生两苦:想要却不得,拥有却失去。 –褚禄山
珍惜当下,与君共勉~


本文标题:SpringBoot:Jenkins 实现持续集成

文章作者:fufua

发布时间:2018年12月19日 - 10:43:13

最后更新:2019年05月13日 - 17:48:43

原始链接:https://qq1028951741.github.io/2018/12/19/SpringBoot:Jenkins 实现持续集成/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

this is end, thank you for reading