上一篇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. Git学习-->如何通过Shell脚本实现 监控Gitlab备份整个过程并且通过邮件通知得到备份结果?

    一.背景 Git学习–>如何通过Shell脚本自动定时将Gitlab备份文件复制到远程服务器? http://blog.csdn.net/ouyang_peng/article/details/ ...

  2. git学习------> 解决Gitlab 版本升级之后,发送 merge request 出现 http 500 的返回码错误

    今天有同事在Gitlab上发送 Merge Request的时候,直接出现如下所示的界面,提示http 500,服务器内部出错. 一.错误描述 1.1 创建新的 Merge Request 1.2 填 ...

  3. mysql 取当前日期对应的周一或周日

    select subdate(curdate(),date_format(curdate(),'%w')-1)//获取当前日期在本周的周一 select subdate(curdate(),date_ ...

  4. git-【十】忽略文件

    1.在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件. 不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置 ...

  5. ubuntu 搭建ftp服务器,可以通过浏览器访问,filezilla上传文件等功能

    搭建ftp服务器 1:首先,更新软件源,保证源是最新的,这样有利于下面在线通过apt-get install命令安装ftp. 2:使用sudo apt-get install vsftp命令安装vsf ...

  6. Spark Shuffle(ExternalSorter)

    1.Shuffle流程 spark的shuffle过程如下图所示,和mapreduce中的类似,但在spark2.0及之后的版本中只存在SortShuffleManager而将原来的HashShuff ...

  7. hadoop2.x Federation

    单Active NN的架构使得HDFS在集群扩展性和性能上都有潜在的问题,当集群大到一定程度后,NN进程使用的内存可能会达到上百G,NN成为了性能的瓶颈 常用的估算公式为1G对应1百万个块,按缺省块大 ...

  8. POJ1845:Sumdiv(求因子和+逆元+质因子分解)好题

    题目链接:http://poj.org/problem?id=1845 定义: 满足a*k≡1 (mod p)的k值就是a关于p的乘法逆元. 为什么要有乘法逆元呢? 当我们要求(a/b) mod p的 ...

  9. CentOS7.5基础优化与常用配置

    目录 最小化全新安装CentOS7基础优化 配置yum源 安装常用软件 关闭防火墙 关闭SELinux 优化ulimit 历史命令记录改为1万条 把命令提示符改为绿色 添加vim配置文件 添加一个普通 ...

  10. swoole gets

    控制器调用: function gets() { $model = Model('ap_pic'); $model->select = ' id, size_type '; $gets['pag ...