jenkins插件开发(二)

https://wiki.jenkins.io/display/JENKINS/Extend+Jenkins

http://commons.apache.org/proper/commons-jelly/index.html

  1. Scm:代表源码管理的一个步骤,如源码管理中的Git,Subversion就是扩展的Scm
  2. Builder : 代表构建的一个步骤,如增加构建步骤中,我们可以增加一个构建步骤,而每一个选项都是对应一个Builder,在每一个Builder中都有自己不同的功能
  3. Trigger:代表一个构建的触发,当满足一个什么样的条件时触发这个项目开始构建。比较常用的触发就是当代码变更时触发,如果我们需要实现一些比较复杂的触发逻辑,就需要扩展Trigger这个扩展点
  4. Publisher:Publisher代表一个项目构建完成后需要执行的步骤,如选项中的E-Mail Notifaction就是一个Publisher插件,选择这个选项后,当项目构建完成,就会使用email来通知用户,假如想要在项目构建完成后将构建目标产物发送到服务器上,则可以扩展此扩展点

  在Say Hello World的例子中:

public class HelloWorldBuilder extends Builder implements SimpleBuildStep {

}

  继承自builder,所以这代表了构建的一个步骤,属于一个构建插件。每一个插件类中都必须要有一个Descriptor内部静态类,它代表一个类的’描述者‘,用于指明这是一个扩展点的实现,Jenkins是通过这个描述者才能知道我们自己写的插件,每一个‘描述者’静态类都需要被@Extension注解,Jenkins内部会扫描@Extenstion注解来知道注册了有哪些插件。

    @Extension
    public static final class DescriptorImpl extends BuildStepDescriptor<Builder> {
        private boolean useFrench;
        public DescriptorImpl() {
            load();
        }
        // 代表我们的插件是否可用
        public boolean isApplicable(Class<? extends AbstractProject> aClass) {
            return true;
        }
        // 返回的是一个String类型的值,这个名称会用在web界面上显示的名称(如构建下拉选项中可以看到Say hello world)
        public String getDisplayName() {
            return "Say hello world";
        }
        @Override
        public boolean configure(StaplerRequest req, JSONObject formData) throws FormException {
            save();
            return super.configure(req,formData);
        }
        public boolean getUseFrench() {
            return useFrench;
        }
    }

  在我们的HelloWorldBuilder中构造函数上有一个注解:

    @DataBoundConstructor
    public HelloWorldBuilder(String name) {
        this.name = name;
    }

  这个注解的作用是用于参数注入(反射),jenkins将界面上获取的值,传递给这个构造函数。这样插件就能获取到在界面上配置的值了。

视图

global.jelly 全局的配置视图

  与config.jelly同一个目录。界面内容会显示在系统配置中

<?jelly escape-by-default=‘true‘?>
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
  <f:section title="Hello World Builder">
    <f:entry title="French" field="useFrench"
      description="Check if we should say hello in French">
      <f:checkbox />
    </f:entry>
  </f:section>
</j:jelly>

config.jelly Job的配置视图

<?jelly escape-by-default=‘true‘?>
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
  <f:entry title="Name" field="name">
    <f:textbox />
  </f:entry>
</j:jelly>

  在定义一个属性时,使用<f:entry>标签代表这是一个属性,其中title是指在界面上显示的字段名,而field是指这个属性在HelloWorldBuilder中对应的属性名,jenkins通过这个名称来与HelloWorldBuilder中的属性相对应,从而使用@DataBoundConstructor标注的构造函数将这些变量注入到HelloWorldBuilder类中。

help-属性名.html 帮助视图 html片段

  当在配置中点击输入框的右边的问号时,下面展开的视图就会显示这个html片段的界面。

原文地址:https://www.cnblogs.com/hellohello/p/8732810.html

时间: 2024-10-21 10:38:07

jenkins插件开发(二)的相关文章

jenkins(二)Pipeline语法速成

jenkins(二) Pipeline语法速成 标签: 运维 jenkins 持续集成 目录 jenkins(二) Pipeline语法速成 1.语法模板 1.1概述 1.2pullcode 1.3Build 1.4Test 1.5Devlop 背景描述: 为了交付文档,先写个速成的版本,目的是供其他同事基于此模板快速配置使用,后续要继续深入研究. 查资料的时候看到了这个文章: Jenkins pipeline脚本编写实践分享(三) 深知自己在这方面还是个弟弟,还是要继续深入学习. 1.语法模板

jenkins插件开发-此路是我开

一:前置环境 1. JDK1.6+ 2. maven已安装 3. jenkins已搭建 4. eclipse已安装(并安装了maven插件) 以上环境可以百度搜索并安装 我的环境是WIN7 64位系统 二:配置环境 1.修改maven配置文件conf/settings.xml 替换原内容为 <?xml version="1.0" encoding="UTF-8"?> <settings> <pluginGroups> <pl

Jenkins(二)基于Role-based认证权限管理

Jenkins安装配置完成后还需要配置邮箱进行发邮件通知,具体如下: 1.依次打开系统管理--系统设置---查找Jenkins Location中的系统管理员邮件地址具体如下: 2.然后拉到最下边配置邮件通知 备注:发邮件的地址必须与管理员地址一致,否则发邮件会报错.同时必须在163邮箱设置授权码,并且在上面设置密码的地方填入该授权码,不然也是发送不了邮件. 3.查看收到的邮件 4.收到了,邮件配置成功.点击保存,进入到之前的任务中,点击配置,找到构建后操作,选择E-mail Notificat

jenkins 插件开发-简单demo

参考上一篇,资料调查(内含多个连接)http://blog.csdn.net/aaashen/article/details/46550121 其中主要参考了这篇http://www.csdn123.com/html/itweb/20130914/119046_119052_119053.htm#csdn123two 上一篇,jenkins+git环境搭建 http://blog.csdn.net/aaashen/article/details/46538143 1.首先修改Maven的配置,将

WORDPRESS插件开发(二)HELLO WORLD改进版

在上一篇文章中WORDPRESS插件开发(一)HELLO WORLD,演示了Hello World的最简单实现,只是在每篇文章的后面加入Hello World字符,而且字符也是写死的. 如果用户需要自己输入一些文字,然后在每篇文章的后面显示,改怎么做呢? 首先要在后台有一个菜单,点击菜单显示一个页面,在页面中有一个输入框,用户输入完毕后点击保存,将内容保存到数据库,显示每篇文章时,提取保存的信息到页面中就可以了. 实现思路激活插件时,使用add_option函数向wp_options添加一个字段

Jenkins -- 插件开发之一环境搭建

1.准备环境 ①Maven ②JDK ③Eclipse 2.修改Maven的配置文件 修改maven安装目录/conf/settings.xml文件.修改后内容如下: <?xml version="1.0" encoding="UTF-8"?> <settings> <pluginGroups> <pluginGroup>org.jenkins-ci.tools</pluginGroup> </plu

jenkins 实验 (二) docker安装jenkins

先安装docker yum install dock* -y systemctl start docker.service 启动docker失败鸟,容我修个错误 看下服务啥错误 systemctl status docker.service -l 坑 Error starting daemon: SELinux is not supported with the ov 重新编辑docker配置文件: vi /etc/sysconfig/docker 在docker里禁用selinux,--sel

jenkins插件开发

https://jenkins.io/doc/developer/ 1. 向导 jenkins是一个强大的插件系统,开发者使用插件,几乎可以影响到所有的jenkins操作.这个章节演示了简单的插件功能. 1.1 准备插件的开发环境 安装JDK环境,安装maven,保证mvn路径被添加到path变量. 1.2 创建插件 打开命令行,进入我们希望的目录中,然后执行 mvn -U archetype:generate -Dfilter=io.jenkins.archetypes: 运行结果 $ mvn

接口自动化测试框架:jmeter + ant + jenkins(二)

接上一篇文章:接口自动化测试框架:jmeter + ant + jenkins(一) 三.一个及多个jmx文件多个请求报告展示 上面只有一个请求,我们看看多个请求的效果 一个jmx多个请求 在线程组下再新增一个http请求,在同一个jmx文件内,设置好新的http请求,执行成功 重新ant下,结果如下: 多个jmx多个请求:同理,这里不继续阐述了. 四.ant调用jmeter脚本(通过jenkins) 启动tomcat中的startup,按win+r键,输入startup 不要关闭,在浏览器中输