Jenkins插件开发进阶篇之扩展插件功能
2018-02-08 20:00
453 查看
之前写过一篇文章是关于如何开发jenkins插件,主要讲述了开发jenkins插件时需要准备的环境,如何新建一个jenkins插件工程,以及对工程项目目录结构的解析。
本文是jenkins插件开发的进阶篇,主要讲述如何扩展jenkins插件的功能。如下图所示:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/e082be1817880a8c9d8a821b3a947baf)
(1)Job任务侧边栏添加选项
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/9e9e96293c8edb30f832bb01c80cae6d)
(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插件的图标显示。如下图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201802/a96a226c18ba3c98a936b54d3d608d0e)
目前相关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插件的开发方面的资料比较少,如有纰漏还望指正。
相关文章推荐
- 插件基础篇2:扩展jQuery的功能 插件开发
- jQuery 学习第七课 扩展jQuery的功能 插件开发
- Eclipse 插件开发 -- 深入理解菜单(Menu)功能及其扩展点
- Eclipse 插件开发 -- 深入理解菜单(Menu)功能及其扩展点
- Jenkins插件开发(4)——插件开发扩展点(Extension Point)
- Eclipse 插件开发 —— 深入理解查找(Search)功能及其扩展点
- Eclipse 插件开发 -- 深入理解菜单(Menu)功能及其扩展点
- Eclipse 插件开发 -- 深入理解菜单(Menu)功能及其扩展点
- eclipse插件开发 利用JDI扩展debug功能
- Jenkins插件开发(5)—— 向Jenkins注册自定义扩展点
- rcp(插件开发)深入理解菜单(Menu)功能及其扩展点
- jQuery 学习第七课 扩展jQuery的功能 插件开发
- Eclipse 插件开发 —— 深入理解查找(Search)功能及其扩展点
- Jenkins插件开发(1)——Jenkins扩展指南(Extend Jenkins)
- Eclipse 插件开发 -- 深入理解菜单(Menu)功能及其扩展点( FROM IBM)
- jQuery 学习第七课 扩展jQuery的功能 插件开发
- Eclipse 插件开发 -- 深入理解菜单(Menu)功能及其扩展点
- juqery插件开发扩展方法(七)
- 基于jquery做插件扩展功能
- Xcode 6 插件开发入门:添加自己的想法和功能