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

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

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

Jenkins插件开发进阶篇之扩展插件功能_第1张图片

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

Jenkins插件开发进阶篇之扩展插件功能_第2张图片

(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文件。

文件内容如下:

(…)
     
         
            

Name: ${it.name}


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

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

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

Jenkins插件开发进阶篇之扩展插件功能_第3张图片

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



你可能感兴趣的:(日常技能)