侧边栏壁纸
  • 累计撰写 372 篇文章
  • 累计创建 60 个标签
  • 累计收到 109 条评论

目 录CONTENT

文章目录

Jenkins 常用插件介绍

Z同学
2022-10-31 / 0 评论 / 2 点赞 / 120 阅读 / 4,769 字
温馨提示:
本文最后更新于 2022-11-01,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

1. 介绍

刚开始接触Jenkins,大部分都会从插件开始吧。我也是一样。被各种插件弄的懵逼。

所以准备用多篇文章。来介绍Jenkins中的各种插件。以及基本使用。

本篇内容只是一个先导介绍,简单介绍各种插件的作用。

之后将会针对插件的使用做专门的介绍(有些插件,用起来没有个中文说明,是真的完全摸不着头脑啊)。

好了,不多说。进入正文进行介绍。

2. 常见插件

Jenkins 在初始化的时候,会推荐一些插件让我们进行安装。这些插件都是Jenkins社区推荐的,大部分人都会使用到的插件。

还有一些插件,是我们自己在实际使用过程中,根据公司需求和个人需求进行安装的一些插件。

下面也是根据这两种进行一个介绍。如果,工作使用的插件使用的频率比较大,也可能会被Jenkins社区采纳进行推荐。

有些差距名称后面有Plugin ,有些插件名称后面没有Plugin。 大家自己进行评判哦。

下面配置的目录,我是按照插件完整名称定义的。

2.1 Jenkins推荐插件

Jenkins自带推荐安装的一些插件例如Git,Folders,BuildTimeout,Credentials Binding,

Timestamper,Workspace Cleanup,Ant,Gradle,Pipeline,GitHub Branch Source等等

基本插件

这些插件可以说,是我们的Jenkins必备的插件了。在我们初始化的时候,就应该安装好,如果没有安装好。就只能自己通过系统管理中进行安装了。下面简单介绍介绍上面的一些插件吧。

Folders Plugin

当前最新版本: 6.773.vd2dcc704ee7e。 (更新频率比较高)

插件地址:https://plugins.jenkins.io/cloudbees-folder/

作用:该插件允许用户创建“文件夹”来组织任务。用户可以定义自定义分类法(例如,按项目类型、组织类型)。文件夹是可嵌套的,您可以在文件夹中定义视图。

安装了该插件之后,我们在新建任务(新建 Item)时,可以新建任务类型中会多一个文件夹类型的选项。

OWASP Markup Formatter Plugin

当前版本:2.7

插件地址:https://plugins.jenkins.io/antisamy-markup-formatter/

作用:该插件允许使用安全的HTML子集格式化Jenkins中的作业、构建、视图等描述。该插件使用OWASP Java HTML Sanitizer和允许用户提交文本中的有限HTML标记的基本策略来清理HTML源。

简单描述就是,用户如果在构建过程中输入的文本为HTML,这个插件就可以限制这些输入文本中的HTML标签。避免该标准造成编译问题。

Build Timeout

当前版本:1.24

插件地址:https://plugins.jenkins.io/build-timeout/

作用:该插件允许您在构建时间过长时自动终止构建。此插件不适用于管道(Pipelines),管道有自己的工作流超时步骤。

我们可以在Build Steps中添加 Run with timeout 运行构建超时,配置超时时间,以及超时之后的执行任务等。

可以调用DingTalk发送超时通知。

Credentials Binding Plugin

当前版本:523.vd859a_4b_122e6

插件地址:https://plugins.jenkins.io/credentials-binding/

作用:该插件允许将凭据绑定到环境变量,以便在其他构建步骤中使用。该插件提供了一种简单的方法,可以打包所有作业的秘密文件和密码,并在构建过程中使用单个环境变量访问它们。

我们在系统管理中添加的凭证控制等等,都是可以说基于该插件配置的。这个插件算是一个底层插件了。

Timestamper

当前版本: 1.20

插件地址:https://plugins.jenkins.io/timestamper/

作用:该插件允许设置任务log时间戳,将时间戳添加到Jenkins作业的控制台输出中。

在构建环境中勾选:Add timestamps to the Console Output 就可以让我们的控制台输出log中每条记录配置上时间戳了。如果时间戳显示的日期格式不符合需求,我们可以在系统管理中的Configure System(系统配置)中找到Timestamper 然后定义我们自己的时间戳显示效果,也可以定义Pipeline中的显示效果。

Workspace Cleanup Plugin

当前版本:0.43

插件地址:https://plugins.jenkins.io/ws-cleanup/

作用:该插件用来清理工作空间。

我们在构建过程中jenkins会给我们生成一个workspace的工作空间,里面会存储我们在构造过程中产生的各种文档(特别是Git拉取到的代码)。该插件就允许我们在每次构造前,将该工作空间清理干净。(PS:我们每次构造之后的构建结果,不会存储在该工作空间中,清理不会造成以前构造的结果被删除)。

在构建环境中勾选:Delete workspace before build starts 就可以在每次构建时清理了。

Ant Plugin

当前版本:481.v7b_09e538fcca

插件地址:https://plugins.jenkins.io/ant/

作用:该插件用来给Jenkins添加Apache Ant的支持。

我们项目编译构造过程中如果要使用到Ant的支持,那么这个插件就是一个核心插件了。有了它Jenkins 才能支持Ant。下面的Gradle和它类似。

Gradle Plugin

当前版本:2.0

插件地址:https://plugins.jenkins.io/gradle/

作用:该插件用来给Jenkins添加Gradle的支持。

我们在编译Android项目的时候,就是通过Gradle进行自动编译构建的。它和Ant 和Maven是一样的。如果要编译Android项目。那么该插件就是必须的。

Pipeline

当前版本:590.v6a_d052e5a_a_b_5

插件地址:https://plugins.jenkins.io/workflow-aggregator/

作用:该插件给Jenkins提供Pipeline功能。这个插件和它依赖的其他插件,整体组成了Jenkins 2.0的Pipeline功能。

例如:

Pipeline Graph Analysis Plugin : 提供 REST API的pipeline访问和管理功能。

Pipeline: API:定义管道API的插件。

Pipeline: Basic Steps:添加管道步骤“build”以触发其他作业的生成。

Pipeline: Declarative:一个顽固的声明性的管道。

等等,配套的插件。这里就不扩展了。

GitHub Branch Source Plugin

当前版本:1695.v88de84e9f6b_9

插件地址:https://plugins.jenkins.io/github-branch-source/

作用:该插件允许从一个或多个GitHub用户或组织创建基于存储库结构的新项目。

要使用该插件,我们在创建item的时候,类型选择构建一个多配置项目(Multi-configuration project)或者多管道项目(Multibranch Pipeline)等。

Git

当前版本:4.12.1

插件地址:https://plugins.jenkins.io/git/

作用:该插件为Jenkins项目提供了基本的git操作。它可以轮询、提取、签出、分支、列表、合并、标记和推送存储库。

我们其实安装该插件,就可以实现Git项目的代码拉取了。

这个是最基本核心的插件。后面Git client,Git server Plugin, GitHub plugin ,GitLab Plugin都是针对具体功能需求,减少操作步骤而封装的各种专用场景下的插件。

SSH Build Agents plugin

当前版本:2.854.v7fd446b_337c9

插件地址:https://plugins.jenkins.io/ssh-slaves/

作用:该插件为Jenkins项目提供通过SSH启动代理的方法。

Matrix Authorization Strategy Plugin

当前版本:3.1.5

插件地址:https://plugins.jenkins.io/matrix-auth/

作用:该插件在Jenkins中实现细粒度访问控制。

我们可以用这个插件实现各种安全选项控制,给与不同用户访问权限,已经编辑和禁用相关安全工配置选项。

这个插件是给管理员用的。普通使用者使用不到。

PAM Authentication plugin

当前版本:1.10

插件地址:https://plugins.jenkins.io/pam-auth/

作用:该插件在Jenkins中实现了Unix可插拔身份验证模块(PAM)的支持。

PAM的完整单词为:Pluggable Authentication Module

LDAP Plugin

当前版本:2.12

插件地址:https://plugins.jenkins.io/ldap/

作用:该插件提供了另一种使用LDAP验证用户的方法。它可以与Active Directory或OpenLDAP等LDAP服务器一起使用。

我们如果用不到的话,是可以禁用该插件的。

LDAP指轻量目录访问协议,完整单词为:Lightweight Directory Access Protocol

Email Extension Plugin

当前版本:2.92

插件地址:https://plugins.jenkins.io/email-ext/

作用:该插件允许您配置电子邮件通知的各个方面。您可以自定义电子邮件的发送时间、收件人以及电子邮件内容。

我们在Jenkins中实现的各种邮件通知功能,通常就是由该插件实现支持的。

Mailer Plugin

当前版本:438.v02c7f0a_12fa_4

插件地址:https://plugins.jenkins.io/mailer/

作用:此插件允许您为生成结果配置电子邮件通知。

Mailer Plugin是一个提供了基本邮件通知的插件,但是该插件实现的功能比较少和简单。例如我们想自定义邮件标题内容等。那么就可以使用Email Extension Plugin插件了。Mailer Plugin这个是Jenkins系统插件。

Localization: Chinese (Simplified)

当前版本:1.0.24

插件地址:https://plugins.jenkins.io/localization-zh-cn/

作用:该插件为Jenkins 提供了简体中文语言包。

我们Jenkins中的各种配置项,有些是中文有些是英文,那就是这个插件包在生效。它对部分功能实现了翻译,部分功能没有翻译造成的。我们如果想使用纯英文版本可以关闭该插件。

推荐插件,到这里就介绍差不多了。我们如果不明白插件的功能可以通过插件地址,去看详细的介绍,唯一不美好的地方在于,详细介绍中都是英文的。

2.2 工作使用推荐插件

把系统推荐的插件介绍完毕后,下面介绍一些工作中用到的。或者帮助我们提升Jenkins理解的插件。

这些插件就属于仁者见仁了。

Environment Injector Plugin

当前版本:2.881.v37c62073ff97

插件地址:https://plugins.jenkins.io/envinject/

作用:可以在编译之后列出构造过程中的环境变量,包括参数化构造的环境变量。

同时,也可以为任务设置自定义环境变量。例如可以将密码安全的注入到构造过程中。

Build Environment Plugin

当前版本:1.7

插件地址:https://plugins.jenkins.io/build-environment

作用:这个插件显示了关于构建环境的信息,并提供了比较两个构建环境的选项。它可以将我们整个构建过程中的全局变量全部展示出来。相较于Environment Injector Plugin 插件,它能够显示更多的变量。

我们如果在使用Groovy脚本的时候,不知道有哪些全局属性。或者我们构造过程中用的很多插件,但是不知道那些插件有没有暴露一些全局参数。都可以用这个接口进行测试和清理。

同时它还能将参数数据进行一个记录。跟随每次构建的输出结果进行展示。

GitLab Plugin

当前版本:1.5.36

插件地址:https://plugins.jenkins.io/gitlab-plugin/

作用:该插件允许GitLab在提交代码或打开/更新合并请求时触发Jenkins中的构建。它还可以将构建状态发送回GitLab。

我们如果项目是通过GitLab进行控制的。那么可以用这个插件来实现,git提交后自动构建。

同时也可以配置GitLab的相关认证。

Upload to pgyer

当前版本:2.1

插件地址:https://plugins.jenkins.io/upload-pgyer/

作用:可以将我们编译后的Android应用或者ios应用上传到蒲公英平台。接口上传完毕后,会自动返回相关下载链接之类的。

Groovy Postbuild

当前版本:2.5

插件地址:https://plugins.jenkins.io/groovy-postbuild/

作用:该插件将会在Jenkins JVM中执行一个groovy脚本。我们可以通过Groovy脚本执行一些事务,并修改构建结果。

例如我在这篇文章中https://zinyan.com/?p=383 通过groovy脚本实现了钉钉消息的发送,就是一个http请求过程的触发。

如果我们使用Pipeline插件,可以不用额外安装Groovy Postbuild因为有一个Pipeline: Groovy

build user vars plugin

当前版本:1.9

插件地址:https://plugins.jenkins.io/build-user-vars-plugin/

作用:该插件将会自动生成6个环境变量。让我们在后面脚本等地方使用。

Variable Description
BUILD_USER Full name (first name + last name) 就是我们的登录用户名
BUILD_USER_FIRST_NAME First name 用户名开头
BUILD_USER_LAST_NAME Last name 用户名结尾
BUILD_USER_ID Jenkins user ID 用户id
BUILD_USER_GROUPS Jenkins user groups 用户分组
BUILD_USER_EMAIL Email address 用户邮件地址

有些构建过程,需要知道是谁操作的。那么这个插件就可以便捷创建了。

DingTalk

当前版本:2.4.10

插件地址:https://plugins.jenkins.io/dingding-notifications/

作用:该插件可以将编译过程通过钉钉机器人发送到我们的钉钉群中。

这个插件安装之后,必须重启Jenkins才能在具体任务中生效的。

NodeJs Plugin

当前版本:1.5.1

插件地址:https://plugins.jenkins.io/nodejs/

作用:该插件为NodeJs & npm 项目提供Jenkins集成。前端页面编译构造过程中会需要NodeJs。

这个插件就必不可少。

Build Name and Description Setter

当前版本:2.2.0

插件地址:https://plugins.jenkins.io/build-name-setter

作用:该插件将构建的显示名称设置为#1、#2、#3…之外的其他名称,以便您可以使用在上下文中更有意义的标识符。安装此插件时,您的作业配置页面将获得附加设置,允许您为每个新生成指定生成名称。配置完毕后,也可以在Pipeline中使用。除了定义名称外,还可以定义一些描述信息哦。

Job Configuration History

当前版本:1183.v6e2785ff75e0

插件地址:https://plugins.jenkins.io/jobConfigHistory/

作用:该插件保存所有作业和系统配置的副本。我们如果配置完毕后,想撤销以前的配置。那么这个插件就是神器了。

如果你更改了某个配置,但是现在又想更改回去,没有备份而且忘了,那么可以使用这个插件。

它会在面板中创建一个Job Conflg History 菜单。将会显示我们每一次的配置更改。我们可以一键回滚到指定配置

Display Console Output

当前版本:1.0.5

插件地址:https://plugins.jenkins.io/display-console-output/

作用:该插件可以直接在项目页面展现上一个构建的控制台输出界面。这样我们点击构建后,可以很方便的看到构建输出日志了。建议安装。

Monitoring

当前版本:1.91.0

插件地址:https://plugins.jenkins.io/monitoring/

作用:该插件通过JavaMelody监控Jenkins的性能。

Active Choices

当前版本:2.6.4

插件地址:https://plugins.jenkins.io/uno-choice

作用:该插件用于参数化的自由式Jenkins作业,以创建脚本化、动态和交互式作业参数。活动选项参数可以动态更新,并可以呈现为组合框、复选框、单选按钮或丰富的HTML UI小部件。根据所选参数,自动调出对应参数所依赖的后续参数。

通俗解释:在一个项目中,可以根据变量选择,执行不同的构建脚本或者构建过程。提高复用性。

Git parameter

当前版本:0.9.18

插件地址:https://plugins.jenkins.io/git-parameter/

作用:该插件允许您在构建中指定git分支、标记、请求或修订号作为参数。可以让我们基于Git的参数化构建。

这个插件会自动使用Git 和 Git Client插件

Gitee

当前版本:1.2.7

插件地址:https://plugins.jenkins.io/gitee/

作用:该插件允许Gitee在提交代码或打开/更新合并请求时触发Jenkins中的构建。它还可以将构建状态发送回Gitee。和上面的GitLab Plugin插件是一样的。只是针对的平台不一样了而已。

Jira

当前版本:3.8

插件地址:https://plugins.jenkins.io/jira/

作用:该插件允许Jenkins执行错误报点的记录。如果通过JIRA记录Bug列表。那么这个插件值得大家试试。

插件将自动将所有匹配的问题名称超链接到Jira。

3.总结

上面的插件,通过标题都可以在 https://plugins.jenkins.io/ 官方插件市场上查询到。

通过每个插件地址,都可以通过浏览器进行下载.hpi文件(Jenkins 插件的文件格式)。

安装插件有两种方式:

  1. 通过Jenkins后台的系统管理中的插件管理的Available plugins 进行搜索安装。
  2. 通过插件管理中的Advanced Setting面板的Deploy Plugin功能,上传hpi文件后点击Deploy按钮进行本地上传安装。

所有介绍到这里就结束了。希望能够解决大家的一部分疑惑。

2

评论区