Fuhui

Jenkins插件开发及调试


Jenkins插件说明

项目使用mvn hpi:create生成,但是自动生成的示例无法直接使用,对pom.xml文件进行了修改,添加如下内容,指定使用当时最新 的jenkins版本,进行调试

<properties>
    <!--    必须指定这个参数,不然使用插件maven-enforcer-plugin的enforceBytecodeVersion检查时会报错-->
    <java.level>8</java.level>
    <!--    使用最新的jenkins版本进行测试-->
    <jenkins.version>2.176.2</jenkins.version>
</properties>

调试方法

执行命令mvn hpi:run会自动在项目的根目录下生成work目录,这个目录里有jenkins软件的信息等内容

如图:在idea上的hpi插件上的run点击debug进入调试模式,然后在源码或者依赖包的源码上打断点。

执行成功的话,打开网页http://127.0.0.1:8080/jenkins/就可以看到jenkins的web界面

在idea里修改java文件、jelly文件、html文件,然后就可以在jenkins的web界面及时看的效果

插件的本土化Localization(比如中文化)

插件默认语言是英文,如何本土化?可以参考org.jenkins-ci.main:jenkins-core:2.176.2这类插件的实现。 jenkins本身以及很多插件都是支持多语言的,选择哪种语言,据说jenkins会根据浏览器语言或者计算机系统语言自动选择的。如果选择的语言没有相应的支持, 则显示英文。

  1. 安装本土化插件,中文为Simplified Chinese Plugin
  2. 安装的插件自身支持本土化
  3. 使用语言切换插件local;配置举例,全局配置里填写:“Default Language”:zh

插件支持本土化方法:示例

插件本土化实现原理:Localization Support

jenkins中的三种视图

jelly相关知识

jenkins框架+插件

jenkins本身不提供很多功能,通过插件来实现各种功能

jenkins 扩展点 创建一个新的扩展点

jenkins有很多的扩展点(ExtensitonPoint),它是Jenkins系统的某个方面的接口或抽象类。这些接口定义了需要实现的方法; 而Jenkins插件需要实现这些方法,也可以叫做在此扩展点之上进行扩展Jenkins

示例

github

参考

  1. https://my.oschina.net/lienson/blog/1531341

  2. jelly

  3. Understanding Jelly Tags

    https://github.com/jenkinsci/jenkins/tree/master/core/src/main/resources/lib

  4. Jenkins Developer Guide