一.环境配置
不赘述,直接看wiki:https://wiki.jenkins.io/display/JENKINS/Extend+Jenkins
二.内容说明
1.插件代码结构
src/main/java:主要存放Java 源码文件.
src/main/resources:Jelly/Groovy视图文件
src/main/webapp:静态资源文件,例如Html或者图片资源
2.插件入口
(1)部分插件的入口是一个Plugin的实现类(可选项),例如Android lint的入口为
/** Hooks up result actions with detail builders at startup. */
public class LintPlugin extends Plugin { @Override
public void start() {
LintDetailBuilder detailBuilder = new LintDetailBuilder();
DetailFactory.addDetailBuilder(LintResultAction.class, detailBuilder);
DetailFactory.addDetailBuilder(LintMavenResultAction.class, detailBuilder);
} }
这个方法会在 setServletContext(ServletContext)执行后调用,主要作用是初始化插件。
(2)简单实现拓展点extension points,通过@hudson.Extension注解实现自动注册
3.插件调试
(1)命令执行
ubuntu:
$ export MAVEN_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=n"
$ mvn hpi:run
Windows:
> set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=,suspend=n
> mvn hpi:run
(2)打开 http://localhost:8080/jenkins
(3)在IDE中加对应断点调试(除非修改了pom.xml,其他情况不需要重新启动,jenkins会进行热加载)
Jenkins插件开发的更多相关文章
-
Jenkins插件开发(一)--环境搭建
最近写了一个jenkins插件,功能比较简单,时间主要是花在对jenkins插件框架和Maven的熟悉上.jenkins插件虽然以前也接触过一点,不过现在都忘得差不多了,这个笔记权当知识点记录,顺带介 ...
-
Jenkins插件开发(三)-- 插件编写
在上一篇blog 中我们介绍了如何创建我们第一个jenkins插件,在这一篇blog继续介绍在开发我们的插件过程中需要注意的一些问题. 扩展点选择 Jenkings插件是基于扩展点来实现的,比如基于B ...
-
Jenkins插件开发(四)-- 插件发布
上一篇blog介绍了插件开发中要注意的一些问题, 我们再来介绍插件开发完成后,如何上传到jenkins的插件中心(这里假设你的代码是放在github上的,使用svn或其他版本管理工具的请参考其他文章) ...
-
jenkins插件开发-此路是我开
一:前置环境 1. JDK1.6+ 2. maven已安装 3. jenkins已搭建 4. eclipse已安装(并安装了maven插件) 以上环境可以百度搜索并安装 我的环境是WIN7 64位系统 ...
-
jenkins 插件开发资料
jenkins plugin 开发:documenthttp://hudson-ci.org/docs/index.htmlhttps://wiki.jenkins-ci.org/display/JE ...
-
Jenkins插件开发(二)-- HelloWorld
在上一篇blog中我们讲了如何搭建jenkins插件的开发环境,接下来介绍如何开发我们的插件. 创建HelloWorld插件 学习每门新语言的时候,我们都会写一个HelloWorld程序,这里介绍的是 ...
-
Jenkins插件开发资料
原文地址:http://www.ciandcd.com/?p=181 Jenkins plugin 开发: Document http://hudson-ci.org/docs/index.html ...
-
jenkins插件开发(二)
https://wiki.jenkins.io/display/JENKINS/Extend+Jenkins http://commons.apache.org/proper/commons-jell ...
-
Jenkins 插件开发笔记
笔记云盘下载链接: https://pan.baidu.com/s/1gfohF1p 密码: v759
随机推荐
-
转 unity 优化
最近研究U3D开发,个人认为,精通一种新的技术,最快最好的方法就是看它的document,而且个人习惯不喜欢看中文的资料,原汁原味的东西是最正确的,一翻译过来很多东西就都不那么准确了.于是通读了uni ...
-
ASP和PHP限制IP访问 只允许指定IP访问 允许*号通配符过滤IP
/** * 检测访问的ip是否为规定的允许的ip * Enter description here ... */ function check_ip(){ $ALLOWED_IP=array('192 ...
-
css3选择器的比较(二) -- 包含字符串
二. 包含“字符串” 两种用法的区别是: a. “~=”,需要用空格分割, b. "*=",不需要任何分隔符 1. 资料 a) b) 2. html代码 <div tit ...
-
sql 按时间二段排序
业务需用为数据按倒序排序,当天数据排在以往日期前面,但当天数据需按小时进行升序排列 select *from( select vcTitle,dtBeginDate,case when dtBegin ...
-
Java :内部类基础详解
可以将一个类的定义放在另一个类的定义内部,这就是内部类. 第一次见面 内部类我们从外面看是非常容易理解的,无非就是在一个类的内部在定义一个类. public class OuterClass { pr ...
-
Mac 终端 shell 公钥失效解决办法
mac的终端下面使用ssh user@localhost输入密码不能正常登录解决 今天回来后发现系统突然很奇怪,以前在mac的终端下面使用ssh user@localhost输入密码就可以连接到远 ...
-
一、变量.二、过滤器(filter).三、标签(tag).四、条件分支tag.五、迭代器tag.六、自定义过滤器与标签.七、全系统过滤器(了解)
一.变量 ''' 1.视图函数可以通过两种方式将变量传递给模板页面 -- render(request, 'test_page.html', {'变量key1': '变量值1', ..., '变量ke ...
-
QSetting
.初始化,判断是否存在ini文件,如果不存在则新建 void iniConfig() { QFileInfo fileInfo(".\\config.ini"); if (!fil ...
-
解决 cmake_symlink_library: System Error: Operation not supported
在编译uchardet时遇到这个错误: cmake_symlink_library: System Error: Operation not supported 创建链接不成功,要确认当前帐户下是否有 ...
-
RW RO ZI ROM keil中的含义
编译的一个ARM的程序,会得到这样的信息: ============================================================================== ...