上一篇blog介绍了插件开发中要注意的一些问题, 我们再来介绍插件开发完成后,如何上传到jenkins的插件中心(这里假设你的代码是放在github上的,使用svn或其他版本管理工具的请参考其他文章)。

组织授权

首先去到google group(被伟大的GFW和谐了,只能翻墙访问,如何翻墙不在这里讨论)的jenkins开发列表(jenkinsci-dev@googlegroups.com)里发帖告诉组织者,你开发的插件id是什么,插件功能是做什么的,还有你的github用户名是什么。组织者如果觉得没问题,就会在jenkins 的github上给你创建一个以你插件名称命名的代码库,然后在github上将你拉入jenkins的组织,这样就可以在这个代码库上添加你的插件代码了。如果你在github上已经有了自己插件的代码库,也可以将地址告诉组织者,这样他会fork你的代码库,如果是这样的话你需要在更新了你原仓库的代码后,再将jenkins仓库上的代码同步。

修改POM文件

再来是修改项目的pom文件,需要增加一些信息,这样发布的时候才可以正确显示你的插件内容。首先是你的源码控制管理配置,增加配置如下:

pom.xml
1
2
3
4
5
  <scm>
<connection>scm:git:ssh://github.com/jenkinsci/MYPLLUGINNAME.git</connection>
<developerConnection>scm:git:ssh://git@github.com/jenkinsci/MYPLUGINNAME.git</developerConnection>
<url>https://github.com/jenkinsci/MYPLUGINNAME</url>
</scm>

插件的WIKI页面(后面会说明如何添加WIKI):

pom.xml
1
2
3
4
<project>
...
<url>http://wiki.jenkins-ci.org/display/JENKINS/My+Plugin</url>
</project>

还有维护人员信息:

pom.xml
1
2
3
4
5
6
7
8
9
10
<project>
...
<developers>
<developer>
<id>devguy</id>
<name>Developer Guy</name>
<email>devguy@developerguy.blah</email>
</developer>
</developers>
</project>

发布插件

最简单的方式就是执行以下命令:

1
 mvn release:prepare release:perform

如果发布成功(窗口提示BUILD SUCCESS 字样)就表示你的插件已经发布到jenkins的更新中心了,不过一般要等个一到半天更新中心才会更新。

一般第一次发布都会有一些问题,没有那么容易成功,这里再介绍一下发布过程中容易出现的问题。

插件版本没有以-SNAPSHOT 结尾。可能有些同学会将-SNAPSHOT结尾的版本号给改成一个正式的版本号,比如1.0,如果是这样的话,发布的时候就会报错。因为jenkins 插件发布的过程中会将你的预设版本号(比如 1.0-SNAPSHOT)改成一个正式的版本号 1.0,然后提交到代码仓库,在检查插件版本号的时候,如果发现不是预设版本号(以-SNAPSHOT结尾)就会报错,所以大家不用担心自己的插件版本号命名问题,在插件发布的时候,会自动帮你修正为正式版本号的。

发布出错回滚。如果在插件发布的过程中出错,重新再执行上面的命令是不行的,会报版本已存在的错误,需要先执行一下下面的命令来清除出错的发布信息。

1
 mvn release:clean

Github 无法push。发布的过程中会使用git将你的代码push到github上,有时候会报权限不允许的问题(Permission denied),那可能是你的github配置有问题,可以参考这里来设置你的SSH或者这里看看是否其他问题。

WIKI页面

发布好了你的插件之后呢,我们需要在jenkins的官网上添加关于你插件的WIKI,以便让使用你插件的用户知道插件的信息。

首先要在jenkins官网上申请一个帐号,申请成功之后你就可以在插件主页上添加你的插件页面了。去到插件主页面(https://wiki.jenkins-ci.org/display/JENKINS/Plugins),点击右上角的Add链接,选择page选项,就可以进入页面编写了。

在WIKI页面中写上你的插件名称,内容要加上下面的语句:

1
2
 {jenkins-plugin-info:pluginId=your-artifact}
{excerpt} your plugin description {excerpt}

your-artifact要写你的插件id,这样页面就会自动去加载插件的相关信息。excerpt里面的是你插件描述,会显示在插件主页上。

最后是在WIKI label上加上插件的分类,比如是UI相关的插件就写plugin-UI,报告类相关的就写plugin-report,这样在插件主页上会将你的插件归到某类插件下。

这里介绍编写WIKI的一个小窍门,可以先进入其他插件页面,然后点击右上角的Edit链接,这样就进入了页面的编辑页面,在这里就可以看到其他插件是如何编写的,参考一下再来编写自己的WIKI页面吧。

持续集成

在上传你插件代码的时候,可能你会想使用持续集成来跑你的测试案例,看看上传的代码是否有破坏原有的功能。没有问题,可以使用BuildHive@CloudBees来为你Github上的代码做持续集成。

使用很简单,先进入这个网址https://buildhive.cloudbees.com/job/jenkinsci/,然后使用你的github帐号登录,接着勾选你想要做持续集成的github项目。这样该项目每次提交代码之后,BuildHive@CloudBees就会为你做持续集成,如果有问题的话会发邮件通知你。

到这里,jenkins插件开发的所有介绍已经全部结束了,之前做插件开发的时候查到一些中文资料,都是一些比较入门的内容,所以自己就想写一个比较全面的介绍,希望这一系列的文章可以帮到你,谢谢。

Jenkins插件开发(四)-- 插件发布的更多相关文章

  1. 【eclipse插件开发实战】Eclipse插件开发7——插件发布jar包

    Eclipse插件开发7--插件发布jar包 最省事的方式就是直接导出jar包,然后放到eclipse的plugins目录下,重启eclipse即可. step1: 对需要打包的插件工程右击→导出(E ...

  2. Jenkins插件开发(三)-- 插件编写

    在上一篇blog 中我们介绍了如何创建我们第一个jenkins插件,在这一篇blog继续介绍在开发我们的插件过程中需要注意的一些问题. 扩展点选择 Jenkings插件是基于扩展点来实现的,比如基于B ...

  3. jenkins maven 自动远程发布到服务器,钉钉提醒团队

    jenkins 自动远程发布到服务器 1.安装jenkins 安装过程:自行百度 英文不好的,不要装最新版的jenkins.建议安装Jenkins ver. 2.138.4,此版本可以设置中文语言,设 ...

  4. [原]Jenkins(七)---jenkins项目编译测试发布由maven构建的web项目

    /** * lihaibo * 文章内容都是根据自己工作情况实践得出. * 版权声明:本博客欢迎转发,但请保留原作者信息! http://www.cnblogs.com/horizonli/p/533 ...

  5. [原]Jenkins(十四)---jenkins示例:admin管理所有项目,新建用户只能看部分项目

    /** * lihaibo * 文章内容都是根据自己工作情况实践得出. *如有错误,请指正 * 版权声明:本博客欢迎转发,但请保留原作者信息! http://www.cnblogs.com/horiz ...

  6. Jenkins+maven+Tomcat配置发布

    jenkins大多数情况下都是用来部署Java项目,Java项目有一个特点是需要编译和打包的,一般情况下编译和打包都是用maven完成,所以系统环境中需要安装maven. 实验环境: 10.0.0.1 ...

  7. 【eclipse插件开发实战】Eclipse插件开发4——插件JDE、PDE开发方式及plugin.xml配置文件结构

    Eclipse插件开发4--插件JDE.PDE开发方式及plugin.xml配置文件结构 开发方式分为:java开发环境JDE开发插件的方式和插件开发环境PDE开发插件方式. 插件通过添加到预定义的扩 ...

  8. Jenkins插件开发(一)--环境搭建

    最近写了一个jenkins插件,功能比较简单,时间主要是花在对jenkins插件框架和Maven的熟悉上.jenkins插件虽然以前也接触过一点,不过现在都忘得差不多了,这个笔记权当知识点记录,顺带介 ...

  9. Gradle 1.12用户指南翻译——第六十四章. 发布到Ivy(新)

    其他章节的翻译请参见:http://blog.csdn.net/column/details/gradle-translation.html翻译项目请关注Github上的地址:https://gith ...

随机推荐

  1. 三、Mosquitto Java 客户端实现

    本文的实现是在 << 一.Mosquitto 介绍&安装>> << 二. Mosquitto 的使用说明 >> 两篇文章搭建好 Mosquitt ...

  2. /etc/rc.d/rc.local linux启动自动开启某些服务(转)

    /etc/rc.d/rc.local似乎是很多Linux系统管理员的偏爱,因为凡是需要随系统自动启动的服务.程序等,只要系统没有提供Sys V风格的启动脚本,就把这些需求都塞到/etc/rc.d/rc ...

  3. PAT 1132 Cut Integer[简单]

    1132 Cut Integer(20 分) Cutting an integer means to cut a K digits lone integer Z into two integers o ...

  4. 1107 Social Clusters[并查集][难]

    1107 Social Clusters(30 分) When register on a social network, you are always asked to specify your h ...

  5. HTML5游戏开发系列教程9(译)

    原文地址:http://www.script-tutorials.com/html5-game-development-lesson-9/ 今天我们将继续使用canvas来进行HTML5游戏开发系列的 ...

  6. Jquery 简明介绍

    http://www.cnblogs.com/luotianshuai/p/5196997.html http://www.cnblogs.com/liujianzuo888/articles/568 ...

  7. CSS控制列表样式属性list-style有哪些?怎么用?

    CSS列表样式属性list-style有哪些类型?不同类型CSS控制列表样式使用时该注意什么? 这是W3Cschool用户Shirley于2016-11-10在W3Cschool编程问答提出的问题.云 ...

  8. python中的切片

    python中提供了一种很方便的方法来完成取出指定范围内的元素,这种方法就是切片(Slice). 以下为切片的例子: In [1]: L = ['Michael', 'Sarah', 'Tracy', ...

  9. python中的排序

    今天在http://www.pythontip.com刷题的时候遇到一个排序的问题:一个列表中既有字符串,又有数字,该怎么排序. list = [1,2,5,4,'d','s','e',45] lis ...

  10. PR曲线 ROC曲线的 计算及绘制

    在linear model中,我们对各个特征线性组合,得到linear score,然后确定一个threshold,linear score < threshold 判为负类,linear sc ...