当前位置: 首页 > news >正文

Jenkins配置项目教程

在上一篇[Jenkins的使用教程](https://blog.csdn.net/weixin_43787492/article/details/129028131?spm=1001.2014.3001.5501)中我介绍了如何创建一个项目
Jenkins在创建项目中提供了很多功能供我们选择,这里我将对配置项目做一个较完整的介绍

Jenkins配置项目

  • 0、所有功能选项
  • 1、General
    • 1) 一般的项目设置:
    • 2) 参数设置
      • - 1、单选参数 Active Choices Parameter
      • - 2、布尔值 Boolean Parameter
      • - 3、文件参数 File system objects list Parameter
      • - 4、Git参数 Git Parameter
      • - 5、节点参数 Node
      • - 6、分隔符参数 Parameter Separator
      • - 7、字符串参数 String Parameter
  • 2、Source Code Management
    • 1)、需要使用git
    • 2)、凭据 Credential使用的场景
      • (1)、管理Node
      • (2) 、项目中使用Git
  • 3、Build Triggers
  • 4、Build Environment
  • 5、Build
    • 举例1:Execute Shell
    • 举例2:Trigger/call builds on other projects
  • 6、Post-build Actions
    • 举例1:Editable Email Notification 编辑通知邮件
    • 举例2:Trigger parameterized build on other projects 触发执行其他项目
  • 7、构建 MultiJob Project
    • 举例、构建 MultiJob Project

0、所有功能选项

每个Jenkins的项目级都有以下6个选项,我们可以按需选择。
图1:项目中所有的option功能图
在这里插入图片描述

1、General

1) 一般的项目设置:

  1. Use custom workspace” :指定机器的工作根目录。如勾选并不填写Directory 则说明指定工作目录为创建该机器时设置的路径。也可手动填入新的目录。
  2. This project is parameterized”: 为该项目添加参数, 点击Add Parameter。【详细见图2.1】
  3. Restrict where this project can be run”:限制该项目可执行在哪个机器上,如输入机器名A。当然也可以不指定机器名,程序就会随机选一个当前在线且空闲的机器执行程序

图2:General图

在这里插入图片描述
在勾选This project is parameterized后点击Add Parameter,可以看到存在很多参数供我们选择,如下图。

2) 参数设置

图2.1:Paramter图

在这里插入图片描述

我将就以下几个常用的参数做个讲解:

- 1、单选参数 Active Choices Parameter

 - 设置参数

在这里插入图片描述

 - 显示参数

在这里插入图片描述

- 2、布尔值 Boolean Parameter

 - 设置参数

在这里插入图片描述

 - 显示参数

在这里插入图片描述

- 3、文件参数 File system objects list Parameter

 - 设置参数

在这里插入图片描述Include Pattern 和 Exclude Pattern用来 过滤匹配我们需要的内容,
如 ^Auto-aaa-\d{12}.tgz 用来匹配 以 Auto-aaa-开头,且包含12个数字的tgz文件。

- 4、Git参数 Git Parameter

 - 设置参数   【设置Git参数的前提是Source Code Management中选Git,以及正确的Repository URL 和 Credentials】    在设置Git 参数时,需要选类型:选Tag      供应的参数值为Tag选Branch   供应的参数值为Branch选Revision 供应的参数值为Revision

在这里插入图片描述
也可通过Parameter type下面的Default Value来设置默认值,
黄色字写的是“Default Value is required. Example origin/master”

说明在我们的显示页面中显示的branch前面会有个origin(比如origin/master),如果在显示页面只想显示具体的branch值,而不要origin这个前缀字符,就在设置Git Parameter的右下角点击 Advanced, 在显示出来的页面中做如下操作:将原来默认的Branch Filter中的 .* 改为 origin/(.*),则在显示页面就不会出现origin的前缀了。
在这里插入图片描述

- 5、节点参数 Node

 - 设置参数

在这里插入图片描述

- 6、分隔符参数 Parameter Separator

 - 设置参数Section Header 输入文字描述,其他两个框都是一些css,描述字体颜色等可以任意设置	 

在这里插入图片描述

 - 显示参数按照上图的设置,显示如下图

在这里插入图片描述

- 7、字符串参数 String Parameter

 - 设置参数

在这里插入图片描述

 - 显示参数

在这里插入图片描述
执行项目前,修改该值,可将值传入项目中。

2、Source Code Management

1)、需要使用git

如果需要使用git,就点击Git,然后根据下图配置信息。

在这里插入图片描述

2)、凭据 Credential使用的场景

(1)、管理Node

step1: 在 launch method :SSH
step2: HOST : IP地址
step3: Credentials: 登录该机器的用户名和密码

(2) 、项目中使用Git

step1: Repository URL : GIt仓库地址
step2: Credentials: 两种
第一种: Private Key
    被Git管控的机器的私钥,内容为: ~/.ssh/id_rsa
第二种: 登录Git的用户名密码
    直接可登Git的用户名密码, git config user.name

3、Build Triggers

可以设置项目定期执行, 语法和crontab 一样
在这里插入图片描述比如设置为 00 22 * * * ,那么在每天22点,该项目就会定期自动执行。

4、Build Environment

在构建环境中,包含以下内容,比如 在执行前删除工作空间内容, 如果项目动不了就中止, 添加时间戳在结果输入页面等等。

在这里插入图片描述

5、Build

Build部分内容就是添加执行脚本:

在这里插入图片描述

点击 Add build step,会发现有很多类型供我们选择,一般就是 Execute Shell, 如果选择的机器是Windows,那么就选择Execue Windows batch command.

在这里插入图片描述

举例1:Execute Shell

step1:选择Execute Shell,输入Shell脚本

在这里插入图片描述

step2:按照上面shell构建完后的显示页面如下

在这里插入图片描述

step3:点击step2中的 Build,运行结果如下

在这里插入图片描述

举例2:Trigger/call builds on other projects

就是说我们可以建立触发条件来执行某项目

step1:选择Trigger/call builds on other projects

在这里插入图片描述

step2:设置触发条件的项目  
可将触发项目移动至原来项目前面,则触发条件执行后,原项目才会执行。

在这里插入图片描述

step3:执行方法跟普通项目一样

6、Post-build Actions

Post-build Actions 就是项目执行后要做的操作

在这里插入图片描述

点击Add post-build actions,有很多选项供我们选择:

在这里插入图片描述

举例1:Editable Email Notification 编辑通知邮件

step1:点击Editable Email Notification,根据需求做以下操作

在这里插入图片描述

step2:完成上述编辑通知邮件后,如果执行,我们会发现设置的收件人并不会收到邮件,是因为我们没有`设置邮件发送的触发条件`,也就是第7小点,点击Advanced Settings...

在这里插入图片描述

step3: 选择要发送邮件的触发条件 

在这里插入图片描述

step4:为了方便观察结果,我们一般设置Always,邮件一般格式如下:

在这里插入图片描述

step5:设置邮件的内容,上述的邮件内容不直观,可以通过以下设置:
  • Jenkins为我们提供了一个template文件,它使用groovy+HTML语法编写 (需要网上下载到自己本地)
  • 需要把该文件指定的目录下,首先需要找配置该Jenkins的工作目录( Manage Jenkins下的Configure System )
  • 把该template放在 /Jenkins的工作目录/email-templates目录
  • 该模板文件一般叫 groovy-html.template,当然也可以自己改名
  • 使用Jenkins提供的模板来作为邮件的内容格式的设置
    在这里插入图片描述
    step6:使用Jenkins提供的模板后,邮件的内容如下
    在这里插入图片描述

举例2:Trigger parameterized build on other projects 触发执行其他项目

当本项目执行完后,需要一些处理后续操作的步骤,就可以建立该项目

在这里插入图片描述

7、构建 MultiJob Project

前面介绍的项目是每次执行一个项目,假设我们每次都需要执行同样的三个项目,就可以构建一个多任务的项目来帮我们执行。

以下步骤:

step1: 创建MultiJob Project

在这里插入图片描述

step2:在Build中选择 Add build step,点击MultiJob Phase

在这里插入图片描述

step3: 输入阶段描述名,项目名,条件

在这里插入图片描述

举例、构建 MultiJob Project

step1:创建名为MultiJob_2023_0224的MultiJob项目,并添加如下MultiJob Phase

在这里插入图片描述

step2:执行页面

在这里插入图片描述

相关文章:

Jenkins配置项目教程

在上一篇[Jenkins的使用教程](https://blog.csdn.net/weixin_43787492/article/details/129028131?spm1001.2014.3001.5501)中我介绍了如何创建一个项目 Jenkins在创建项目中提供了很多功能供我们选择,这里我将对配置项目做一个较完整的介绍Jenkins配置项目0、所有…...

C++多继承,虚继承部分总结与示例

tags: C OOP 写在前面 写一下多继承, 虚继承的一些部分, 包括一些例子. 多继承 简介 多继承是指从多个直接基类中产生派生类的能力. 多继承的派生类继承了所有父类的属性, 所以会带来一些复杂的问题. 示例1: 多继承用法与调用顺序 #include <string> #include <…...

程序员35岁以后就没有出路了吗?听听京东10年测开的分析

国内的互联网行业发展较快&#xff0c;所以造成了技术研发类员工工作强度比较大&#xff0c;同时技术的快速更新又需要员工不断的学习新的技术。因此淘汰率也比较高&#xff0c;超过35岁的基层研发类员工&#xff0c;往往因为家庭原因、身体原因&#xff0c;比较难以跟得上工作…...

数据结构(六):冒泡排序、选择排序、插入排序、希尔排序、快速排序

数据结构&#xff08;六&#xff09;一、大O表示法二、冒泡排序三、选择排序一、大O表示法 在计算机中采用粗略的度量来描述计算机算法的效率&#xff0c;这种方法被称为“大O”表示法。 我们判断一个算法的效率&#xff0c;不能只凭着算法运行的速度&#xff0c;因为随着数据…...

C++之类与对象(上)

目录 一、类的定义 二.类的访问限定及封装 1.访问限定 2.封装 三.类的作用域和实例化 2.类的实例化 四.类的对象大小的计算 1.类成员存储方式 2.结构体内存对齐规则 五.类成员函数的this指针 1.this指针的引出 2.this指针的特性 3.C语言和C实现Stack的对比 一、类的定义 class …...

Java岗面试题--Java并发 计算机网络(日积月累,每日三题)

目录1. 面试题一&#xff1a;在 Java 程序中怎么保证多线程的运行安全&#xff1f;1.1 追问一&#xff1a;Java 线程同步的几种方法&#xff1f;2. 面试题二&#xff1a;JMM3. 面试题三&#xff1a;计算机网络的各层协议及作用&#xff1f;1. 面试题一&#xff1a;在 Java 程序…...

三菱FX3U与威纶MT8071IP走RS422通讯

一、准备工作 1.需要工具&#xff1a; 电脑一台、PLC&#xff1a;三菱FX3U一个、触摸屏&#xff1a;威纶MT8071一个、 &#xff08;三菱圆形编程口转USB&#xff09;一根、触摸屏与电脑通讯线一根&#xff08;T型口数据线&#xff09;、PLC与触摸屏通讯线&#xff1a;电烙…...

给想考CISP的一点建议

如果你正在考虑参加CISP认证考试&#xff0c;以下是我对你的几点建议&#xff1a; 了解CISP考试&#xff1a; 在报名参加考试之前&#xff0c;要充分了解CISP认证考试的考试内容、考试形式、考试难度等相关信息&#xff0c;这有助于你制定更有效的备考计划。制定备考计划&…...

ACM 记忆化搜索

一.记忆化搜索概述 1.概念 搜索是一种简单有效但是效率又很低下的算法结构&#xff0c;其低效的原因主要在于存在很多重叠子问题。而记忆化搜索则是在搜索的基础上&#xff0c;利用数组来记录已经计算出来的重叠子问题状态&#xff0c;进行合理化的剪枝&#xff0c;从而降低时…...

spring框架常用注解简单说明

1、Configuration&#xff1a;标注在类上&#xff0c;相当于把当前类作为spring的xml配置文件中的&#xff1b; 2、Bean&#xff1a;标注在方法上&#xff0c;相当于spring配置文件中的&#xff1b; 3、Service&#xff1a;标注在类上&#xff0c;表明当前类是一个服务层的Be…...

2023-02-24 mysql/innodb-聚合-临时表避免OOM-使用磁盘文件-分析

摘要: mysql/innodb在执行聚合时, 当聚合的数据量太大时, 也就是临时表的大小超过tmp_table_size 限制时, 将进行写磁盘操作, 以避免OOM。 本文记录聚合数据写磁盘的操作。 参考: https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_tmp_table_…...

cracklib与libpwquality 评估密码的安全性

一、cracklib 检测密码强弱linux中采用pam pam_cracklib module来实现对密码强度的检测&#xff0c;可以通过配置让linux系统自动检测用户的密码是否为弱密码。yuminstall cracklib # centos apt-get install libcrack2 # ubuntu # 如果需要依赖此库做开发的话需要安装这个 y…...

【Java】保证并发安全的三大特性

一、并发编程三大特性的定义和由来 并发编程这三大特性就是为了在多个线程交替执行任务的过程中保证线程安全性。 二、为什么会出现线程不安全的现象呢&#xff1f; 接下来我们从这三个特性切入来介绍线程不安全的原因。 1.原子性&#xff1a; 一组操作要么全部执行&#…...

如何优雅的用golang封装配置项(Functional Options)

导读 最近要封装一个公共服务&#xff0c;涉及到配置项的地方总是找不到合理的方案&#xff0c;后来看了一下grpc在配置方面的封装&#xff0c;了解到原来是golang特有的Functional Options编程模式&#xff0c;今天分享给大家&#xff0c;希望你能用到&#xff0c;咱们直接来看…...

Springboot 使用thymeleaf 服务器无法加载resources中的静态资源异常处理

目录一、异常错误二、原因三、解决方法方法1. 将无法编译的静态资源放入可编译目录下方法2. 重新编译项目加载资源方法3. 修改pom.xml资源配置文件方法4. 不连接远程数据库启动&#xff0c;使用本地数据库一、异常错误 Springboot使用thymeleaf&#xff0c;并连接远程数据库启…...

服务端IOS订阅类型支付接入详细说明与注意事项

一、说明 由于本人在开发ios订阅类型支付接入的时候&#xff0c;遇到了很多坑&#xff0c;也查了不少资料&#xff0c;逐步完善了整个ios订阅支付服务端接入的功能&#xff0c;在这里写下总结和一些注意事项的记录&#xff0c;方便未来需要重新接入或者避免一些不必要的坑,这里…...

【剑指Offer】重建二叉树(递归+迭代)

重建二叉树一、递归法二、迭代法题目链接 题目描述&#xff1a; 输入某二叉树的前序遍历和中序遍历的结果&#xff0c;请构建该二叉树并返回其根节点。 假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 示例 1: Input: preorder [3,9,20,15,7], inorder [9,3,15,…...

注解@Transactional 原理和常见的坑

这篇文章&#xff0c;会先讲述 Transactional 的 4 种不生效的 Case&#xff0c;然后再通过源码解读&#xff0c;分析 Transactional 的执行原理&#xff0c;以及部分 Case 不生效的真正原因1 项目准备下面是 DB 数据和 DB 操作接口&#xff1a;uidunameusex1张三女2陈恒男3楼仔…...

2023年全国最新交安安全员精选真题及答案4

百分百题库提供交安安全员考试试题、交安安全员考试预测题、交安安全员考试真题、交安安全员证考试题库等&#xff0c;提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 31.特种劳动防护用品必须具有“三证”&#xff0c;下列不属于“三证”的是&#…...

扬帆优配|半天翻倍,“蹭热点”翻车,前期“牛股”已近腰斩

周五上午&#xff0c;A股商场整体走低&#xff0c;多数职业板块和个股跌落&#xff0c;军工和核算机等板块逆势上涨&#xff0c;北向资金半天净卖出额约38亿元。 个股方面&#xff0c;昨夜公告被证监会立案查询的奥联电子股价再度大跌&#xff0c;盘中最贱价较近期高位已腰斩。…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程&#xff1f; 2. Java创建对象的过程&#xff1f; 3. 对象的生命周期&#xff1f; 4. 类加载器有哪些&#xff1f; 5. 双亲委派模型的作用&#xff08;好处&#xff09;&#xff1f; 6. 讲一下类的加载和双亲委派原则&#xff1f; 7. 双亲委派模…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...

NPOI Excel用OLE对象的形式插入文件附件以及插入图片

static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台

淘宝扭蛋机小程序系统的开发&#xff0c;旨在打造一个互动性强的购物平台&#xff0c;让用户在购物的同时&#xff0c;能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机&#xff0c;实现旋转、抽拉等动作&#xff0c;增…...

【C++】纯虚函数类外可以写实现吗?

1. 答案 先说答案&#xff0c;可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...

Python 高效图像帧提取与视频编码:实战指南

Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...

[QMT量化交易小白入门]-六十二、ETF轮动中简单的评分算法如何获取历史年化收益32.7%

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。 QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。 文章目录 相关阅读1. 策略概述2. 趋势评分模块3 代码解析4 木头…...

二维数组 行列混淆区分 js

二维数组定义 行 row&#xff1a;是“横着的一整行” 列 column&#xff1a;是“竖着的一整列” 在 JavaScript 里访问二维数组 grid[i][j] 表示 第i行第j列的元素 let grid [[1, 2, 3], // 第0行[4, 5, 6], // 第1行[7, 8, 9] // 第2行 ];// grid[i][j] 表示 第i行第j列的…...