Jenkins插件开发进阶篇之扩展插件功能

之前写过一篇文章是关于如何开发jenkins插件,主要讲述了开发jenkins插件时需要准备的环境,如何新建一个jenkins插件工程,以及对工程项目目录结构的解析。

本文是jenkins插件开发的进阶篇,主要讲述如何扩展jenkins插件的功能。如下图所示:


(1)Job任务侧边栏添加选项

(2)在Job任务中添加新页面

实现Jenkins插件以上两个功能,需要关注以下两个问题。

1、  如何向Job项目主页面中回传的数据

2、  如何在Job项目中添加新页面

废话少说,直入正题吧。

一、传递数据

首先在FireLineBuilder类的同一目录下新建一个FireLineScanCodeAction类,该类需要实现Action接口。Action接口是扩展jenkins插件的一个基本构建接口,其他还有很多不同功能的子接口,例如:BuildBadgeAction,runAction2,HealthReportingAction,SimpleBuildStep.LastBuildAction,ProminentProjectAction等等。

         Action接口中有三个方法必须要实现:getUrlName()、getIconFileName()和getDisplayName()。以上三个方法分别设置该Action的URL地址名称、显示图标地址以及显示的名称。

当需要传递数据到Job任务页面中时,我们需要在FireLineScanCodeAction类中添加一个字段,以及get方法。

源代码如下所示:

package com.qihoo.fireline;
import hudson.model.Action;
public class FireLineScanCodeAction implements Action {
	private String name;
    public FireLineScanCodeAction(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
	(…)
}

Action的实现类已经准备好了,现在我们需要在job构建时为实现类添加实例。在FireLineBuilder类中的perform方法中为本次构建添加FireLineScanCodeAction类的实例。

源代码如下:

(...)
	@Override
    public void perform(Run<?, ?> run, FilePath workspace, Launcher launcher, TaskListener listener) throws InterruptedException, IOException {
        run.addAction(new FireLineScanCodeAction(" FireLine ")); 
    }
(...)

二、添加新页面

首先,我们需要回到FireLineScanCodeAction类中为此Action定义图标主题名称和URL地址名称。

源代码如下:

  @Override
    public String getIconFileName() {
        return "document.png"; 
    }
    @Override
    public String getDisplayName() {
        return " FireLine Static Analysis "; 
    }
    @Override
    public String getUrlName() {
        return "fireline"; 
    }

添加好相关信息后,需要在src/main/resources/com/qihoo/fireline/目录下添加FireLineScanCodeAction/目录,此目录与FireLineScanCodeAction类相对应。在src/main/resources/com/qihoo/fireline/FireLineScanCodeAction/目录下新建index.jelly文件。

文件内容如下:

(…)
    <l:layout title="fireline"> 
        <l:main-panel> 
            <h1> 
                Name: ${it.name} 
            </h1>
        </l:main-panel>
    </l:layout>

此时,页面已经添加完成。使用命令mvn hpi:run运行,浏览器打开页面http://localhost:8080/jenkins新建一个任务,命名为firelineTest。到项目配置中添加”ExecuteFireLine”构建选项后保存。返回到firelineTest项目中可看到侧边栏中增加“FireLine Static Analysis”选项。

到此一个有回传数据的侧边栏选项就添加完成了。

后续还会介绍如何更改为自定义的图标,以及如何扩展ProminentProjectAction接口等进阶内容。例如火线(FireLine )的jenkins插件的图标显示。如下图:

目前相关Jenkins插件的开发方面的资料比较少,如有纰漏还望指正。



  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值