Jenkins Plugin 基础开发入门(2)

这里它们的区别在有点类似于局部变量与全局变量的区别。gloabal.jelly 更多的用于读取存储与某个具体构建无关的配置信息。而具体的构建本身的相关参数基本都由 config.jelly 进行处理。

如果我们需要创建的是一个局部的配置(大多数情况),那么我们就在上述路径下增加文件config.jelly,路径如下:

src/main/resources/org/sample/HelloWorldBuilder/config.jelly

Jenkins Plugin 基础开发入门

如何读取 Jelly 中的用户输入

那么我们有如何访问 Jelly 中的信息呢?最为基础的方法就是通过 Descriptor 进行页面和数据的绑定了。

假设我们在 jelly 按如下方式进行定义:

<f:entry title="Name" field="name">

那么与之对应的,我们就可以在对应的类里进行如下配置了:

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

那么当 UI 中的数据提交之时, Jenkins 会根据传过来的具体数据调用构造函数来创建对象。

在类中增加getter方法,或者将变量设置为public final。这样可以还让Jelly脚本将数值显示到配置信息页面。

public String getName() { return name; }

Jenkins Plugin 基础开发入门

在内部实现的DescriptorImpl类中,我们也可以选择增加doCheckFIELD()函数,来进行配置检查。在参数上可以增加@QueryParameter注解来传入附近位置的数据。

public FormValidation doCheckName(@QueryParameter String value) throws IOException, ServletException { if (value.length() == 0) { return FormValidation.error("Please set a name"); } if (value.length() &lt; 4) { return FormValidation.warning("Isn't the name too short?"); } return FormValidation.ok(); }

当然,我们也可以使用各种 Jelly 控件,如textbox,checkbox 以及 validateButton等等。具体的使用方法,可以参考以下文档,这里就不一一展开了。

参考文档:jenkinsci/ui-samples-plugin

如何操控 Jelly 反馈信息

首先,我们先来看看 Jelly 如何访问项目中的其它资源。默认情况下, Jenkins 已经定义了以下对象:

app - Jenkins

it - Jelly UI 绑定的类

instance - Jelly UI 所对应的正在被配置的对象

descriptor -与 instance 所对应的 Descriptor

h - husdon.Functions 的实例

所以我们如果在类中配置了:

public String getMyString() { return "Hello Jenkins!"; }

而按如下方法编写其对应的 jelly 文件:

<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"> ${it.myString} </j:jelly>

那么,页面上就能调用出类的方法,显示出”Hello Jenkins!”了。

局域网内利用GitLab+Jenkins自动生成GitBook并发布(Nginx) 

Linux+Git+Maven+Jenkins+Neuxs自动化编译环境搭建

CentOS 7上安装Jenkins 

CentOS6安装Jenkins 

使用Jenkins配置Git+Maven的自动化构建

Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记

Jenkins的分布式构建及部署——节点 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/14665.html