Jenkins 实现自动化部署

news2024/10/5 17:17:49

安装

windows下安装:https://blog.csdn.net/u014641168/article/details/130286547

linux下安装:https://blog.csdn.net/u014641168/article/details/130282439

Jenkins支持JDK1.8对应版本说明:https://blog.csdn.net/u014641168/article/details/130286060

新建

新建Item:

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

在这里插入图片描述
继续往下翻,构建触发器处,勾选Poll SCM,并输入如下信息:

* * * * *

如下:

在这里插入图片描述

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

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

clean package -DskipTests install

勾选 “使用自定义的工作空间” ,这里意思就是自动克隆git代码到这个文件夹下。如下:

在这里插入图片描述
继续往下翻,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掉

如下:

在这里插入图片描述
最后点击【保存】按钮,然后开始构建:

在这里插入图片描述
这样查看日志:

在这里插入图片描述
然后就可以看到日志详情了:

在这里插入图片描述
也可以在首页进行构建:

在这里插入图片描述
然后看本地磁盘,jar包已经复制到我指定目录了:

在这里插入图片描述
但是我指定的日志文件还是回生成在Jenkins的默认目录,如下:

在这里插入图片描述

测试

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

测试接口代码如下:

package cn.itsource.controller;

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

/**
 * <p>TestController</p>
 *
 * @author tongyao
 */
@RestController
public class TestController {

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

}

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

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

package cn.itsource.controller;

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

/**
 * <p>TestController</p>
 *
 * @author tongyao
 */
@RestController
public class TestController {

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

}

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

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

问题

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

在这里插入图片描述
在全局安全配置里面,勾选上这个参数即可:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/443887.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32 学习笔记_3 程序编写基础;arm 内核架构

程序编写基础 Keil 编辑器设置 抛开 tab 和空格哪个好看不谈&#xff0c;不同编译器设置格式不同&#xff0c;空格比较保险。 用户关键字&#xff1a;打出来的时候会高亮。 代码提示&#xff1a;&#xff08;symbols after 是几个字符后开始提示关键字的意思&#xff09; 以上…

6、索引的数据结构

3.3 常见的索引概念 索引按照物理实现方式&#xff0c;索引可以分为 2 种&#xff1a;聚簇和非聚簇索引 1、聚簇索引 5、索引的代价 空间上的代价 每建立一个索引都要为它建立一棵B树&#xff0c;每一棵B树的每一个节点都是一个数据页&#xff0c;一个页默认会占用 16KB 的存…

jsp827+java心理测评管理系统dzkfB4程序j2EE+mysql

现代社会的大学生是21世纪的主人&#xff0c;他们不仅需要具有为社会做贡献的真才实学&#xff0c;更需要健康的心理。大学生的身心健康&#xff0c;人格健全和谐发展是他们学习的需要&#xff0c;是社会对未来参与者素质的要求。 1&#xff0e;系统登录&#xff1a;系统登录是…

thinkphp:插入数据到数组

一、插入数据到数组首位&#xff08;array_unshift&#xff09;&#xff0c;这里全用空值进行插入 $array [a,b,c]; //在首位加入一个空值 array_unshift($array ,); //将数组输出 print_r($array); 输出结果&#xff1a; 二、插入数据到数组末尾&#xff08;array_push&…

docker安装kafka,并集成springboot进行测试

大家好&#xff0c;今天我们开始学习kafka中间件&#xff0c;今天我们改变一下策略&#xff0c;不刷视频学习&#xff0c;改为实践学习&#xff0c;在网上找一些案例功能去做&#xff0c;来达到学习实践的目的。 首先&#xff0c;是安装相关组件。 1. docker安装安装 1.1 yu…

深度学习中的各种不变性

不变性 平移不变性&#xff08;Translation Invariance&#xff09;旋转不变性&#xff08;Ratation Invariance&#xff09;尺度不变性&#xff08;Size Invariance&#xff09;光照不变性&#xff08;Illumination Invariance&#xff09;仿射不变性&#xff08;Affine Invar…

PS学习记录-图像【像素】与【分辨率】的说明

我们经常能在图片的属性中看到 1920像素x1080像素 &#xff08;老司机在视频文件中也经常看到~&#xff09; 这就是我们常说的图片分辨率&#xff0c;以下是我学习整理的关于像素、分辨率的资料。 注意&#xff1a; 图像分辨率是针对【位图】的&#xff0c;图片分辨率决定了…

记录-JS简单实现购物车图片局部放大预览效果

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 一、实现效果 二、代码实现 代码不多&#xff0c;先看一下 HTML 里面结构很简单&#xff0c;初始化 MagnifyingGlass 对象来关联一个 IMG 标签来实现放大。 <!DOCTYPE html> <html> <h…

做一个网站需要多少个技术人员?

作为互联网从业者&#xff0c;这么多年来经常会碰到一个灵魂拷问&#xff0c;那就是“为什么一个网站需要那么多技术人员&#xff1f;”&#xff0c;尤其是提问者如果再追问一下“听说几个相关专业的学生一个课程的作业就是开发一个网站或者app&#xff0c;那为什么现在主流的网…

C++ | 认识标准库string和vector

本文概要 本篇文章主要介绍C的标准库类型string和vector&#xff0c;文中描述和代码示例很详细&#xff0c;看完即可掌握&#xff0c;感兴趣的小伙伴快来一起学习吧。 &#x1f31f;&#x1f31f;&#x1f31f;个人简介 &#x1f31f;&#x1f31f;&#x1f31f; ☀️大家好&a…

stable diffusion安装从0到1总结:包括遇到的坑和步骤

注&#xff1a;最低电脑配置&#xff1a;8G Vram16G RAM30G磁盘空间以上&#xff0c;20系列显卡及以上&#xff0c;windows>linux>macos。 文件可以不放在系统盘。举个例子&#xff1a;安装在D盘&#xff0c;在D盘创建一个StableDiffusion文件夹。下载下面文件: 1.下载…

为什么实现 API 最佳实践需要重新考虑安全性

随着应用程序编程接口 (API) 的使用与日俱增&#xff0c;实现和维护有效安全性的挑战从未像现在这样大。 由于缺乏管理 API 的单一标准&#xff0c;这意味着团队不能仅依靠工具来解决安全问题&#xff0c;因此这一挑战变得更加严峻。没有任何一种产品可以解决 API 环境的每种…

pg编码相关问题梳理

Lightdb/PG 编码相关问题梳理 之前在通过SQL文件导入数据时&#xff0c;报&#xff1a;ERROR: invalid byte sequence for encoding "EUC_CN"错误。然后就梳理了一下编码相关问题&#xff0c;这边记录一下。涉及到如下两种类型的报错&#xff1a; ERROR: invalid b…

电脑如何还原系统?这样做可以快速解决!

案例&#xff1a;我的电脑系统出问题了&#xff0c;怎么还原&#xff1f; 【我的电脑用了好几年了&#xff0c;最近它的系统出现了一些问题&#xff0c;我想还原电脑系统。有没有知道电脑系统如何还原&#xff1f;蹲一个简单的解决方法&#xff01;】 随着电脑使用时间的增加…

面试华为,花了2个月才上岸,真的难呀····

花2个月时间面试一家公司&#xff0c;你们觉得值吗&#xff1f; 背景介绍 美本计算机专业&#xff0c;代码能力一般&#xff0c;之前有过两段实习以及一个学校项目经历。第一份实习是大二暑期在深圳的一家互联网公司做前端开发&#xff0c;第二份实习由于大三暑假回国的时间比…

Linux中的git命令行

Linux中的git命令行 目录 Linux中的git命令行引入1、Linux下的git工具起源2、gitee的使用.gitignore.git 3、git三板斧3.1 git add3.2 git commit3.3 git push 4、git操作4.1 查看提交日志4.2 查看状态4.3 远端同步4.4 删除文件4.5 修改文件名 引入 当多个开发者同时参与同一个…

(一)Jhipster的基本介绍及入门安装

目录 1、为什么要使用 Jhipster &#xff1f; 2、安装配置 3、安装Jhipster 4、基本使用 5、介绍一下JDL Studio 6、启动 Jhipster 搭建项目 1、为什么要使用 Jhipster &#xff1f; JHipster是一个开发平台&#xff0c;可以快速生成、开发和部署现代Web应用程序和微服务…

分享几个自动化测试的练手项目

学习自动化测试最难的是没有合适的项目练习。 测试本身既要讲究科学&#xff0c;又有艺术成分&#xff0c;单单学几个 api 的调用很难应付工作中具体的问题。 你得知道什么场景下需要添加显性等待&#xff0c;什么时候元素定位需要写得更加优雅&#xff0c;为什么需要断言这个…

CANoe使用记录(四):CANoe Graphics图形窗口

目录 1、概述 2、Graphics图形窗口 2.1、打开测量窗口&#xff08;回放Log&#xff09; 2.2、输出Log 2.3、添加解析DBC文件 2.4、窗口排列 2.5、添加Graphics窗口 2.6、 信号栏选择 2.7、添加信号 2.8、波形样式 2.9、单Y轴测量尺 2.10、多Y轴测量尺 2.11、数据隐…

10行Python代码,助你整理杂乱无章的文件

朋友们好&#xff0c;今天是周五&#xff0c;又到了快放假的时间&#xff0c;激不激动&#xff1f;高不高兴&#xff1f;但是我还是要继续分享 Python 小工具给大家&#xff0c;嘻嘻~~ 今天的小程序&#xff0c;可以一键完成文件整理&#xff0c;一起来看看吧&#xff01; 按…