- 浏览: 1500094 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
duxingzheZet:
listview.getScrollY(); // 为啥总是0 ...
Android 记录和恢复ListView滚动的位置的两种方法 -
Escalade:
AlertDialog显示错误 Unable to add window token null is not for an application -
陌路千里:
return false即可
form表单只提交值,而不进行页面跳转 -
yubenjie:
不错,说的很全。学习了
maven用途、核心概念、用法、常用参数和命令、扩展 -
fxiaozj:
中文加数字还是不行呀
解决TextView在中文和标点存在情况下一行没显示满就换行问题
Hudson是一个开源的持续集成工具,由于其强大的扩展性(插件)而著名,允许用户定制build的各个step,steps如下:
- SCM checkout - Based on SCM type, source code is checked out
- Pre-build - Invoked to indicate that the build is starting
- Build wrapper - Prepare an environment for the build.
- Builder runs - Actual building like calling Ant, Make, etc. happen.
- Recording - Record the output from the build, such as test results.
- Notification - Send out notifications, based on the results determined so far
<pluginGroups> …… <pluginGroup>org.jvnet.hudson.tools</pluginGroup> …… </pluginGroups>加入这一行信息可以在我们使用Hudson的maven插件时使用缩略名(比如.使用hpi:create代替org.jvnet.hudson.tools:maven-hpi-plugin:1.23:create)
mvn hpi:createhpi: 是Hudson Plug-in Interface的缩写,这是Hudson自己开发的用来进行插件开发的maven插件,就像大家经常用的mvn eclipse:eclipse中的前面一个eclipse
public static DescriptorImpl descriptor() { return Hudson.getInstance().getDescriptorByType(HelloWorldBuilder.DescriptorImpl.class); }以上代码中的HelloWorldBuilder为当前类名
mvn package在target目录下生成了一个*.hpi和一个*.jar文件,见过hudson插件的都知道,hpi后缀为hudson插件文件。现在我们就可以将hpi文件添加到hudson中作为插件,不过不急,我们用命令自动运行
mvn hpi:run这个命令会启动jetty,并且将hudson作为一个web应用启动,启动hudson前安装当前的插件到hudson中
mvn hpi:run -Djetty.port=8090修改启动端口为8090
2、插件中主要代码介绍
2.1 继承相应的扩展点extension Point
hpi中有个概念叫extension Point。就是说你要扩展哪方面。
由于mvn hpi:create默认扩展自扩展Builder这个扩展点,所以HelloWorldBuilder继承了Builder这个类。
其他扩展点会继承其他类,如post build action需要继承Notifier
2.2 实现perform方法
方法perform()是个很重要的方法,当插件运行的的时候这个方法会被调用。相应的业务逻辑也可以在这里实现。
2.3 继承Descriptor
新建DescriptorImpl类继承了BuildStepDescriptor<Builder>,BuildStepDescriptor继承自Descriptor。在Hudson 的官方说明文档里说Descriptor包含了一个配置实例的元数据。
打个比方,我们在工程配置那里对插件进行了配置,这样就相当于创建了一个插件的实例,这时候就需要一个类来存储插件的配置数据,这个类就是Descriptor。
其中的getDisplayName()表示在配置中插件展现的名字,如同上面1.5查看结果中我们看到的配置中build下拉框的Say hello world
3、debug调试
用mvn -Dhudson.maven.debugPort=5001 hpi:run启动jetty
或者修改maven启动参数
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=5001
具体见:http://wiki.hudson-ci.org/display/HUDSON/Debugging+native+Maven+jobs
更多参考如下:
http://wiki.hudson-ci.org/display/HUDSON/Extend+Hudson
http://wiki.eclipse.org/Hudson-ci/writing-first-hudson-plugin
http://wiki.hudson-ci.org/display/HUDSON/Plugin+tutorial
http://drizzlewalk.blog.51cto.com/2203401/499586
评论
mvn hpi:run -Djetty.port=8090 这个命令是改启动端口的
简单的插件好写,但对于不同的扩展点要实现的函数略有不同,这些文档还不好找,有点麻烦,我们这边有不少扩展点其他人已经写好了的插件,到时候你需要可以找我
发表评论
-
Android 开源库获取途径整理
2014-08-20 02:14 3263最新内容请见原文: http://www.trinea.c ... -
WordPress和github page的选择和搭建
2013-01-30 22:15 1584从搭建复杂度、写博客的便捷程度、开放性(主题、工具插件)等 ... -
maven常用插件配置和使用
2012-05-17 20:14 6310最新内容见:Maven常用插件配置和使用 本文主要是 ... -
总结的一些Java公用函数库
2012-06-18 15:41 9118最新内容建议直接访问原文:Android常用的工具类 ... -
PreloadDataCache支持预取的数据缓存,使用简单,支持多种缓存算法,支持不同网络类型,扩展性强
2012-06-18 15:44 4336最新内容建议直接访 ... -
Junit单测代码中java序列化失败的解决
2012-05-17 00:38 3504本文主要介绍在Junit单元测试中序列化时出现的java.io ... -
异常处理的最佳实践[转载]
2012-05-15 17:01 1545之前一直对异常处理比较疑惑,通常有点随心所欲而没有规范统一的处 ... -
重构#读书笔记#
2012-03-31 10:06 01、要在工程已开始就有很好的设计在不改动几乎不可能,因为代码不 ... -
设计模式
2012-03-12 00:11 0设计模式 Gof的设计模式 -
Java Semaphore用法
2012-03-09 14:15 0参考:http://comeonbabye.ite ... -
大话设计模式 #笔记#1
2012-01-31 23:51 0软件设计原则 1、单一职责原则 2、开放封闭原则 3、依 ... -
eclipse中查看Java源代码
2012-01-16 23:25 6675在eclipse中对于自己的代码可以通过按住Ctrl的同时单击 ... -
maven下载依赖的问题
2012-01-16 16:08 6385由于maven的 remote repositor ... -
git常用命令
2012-01-08 20:40 2555跟svn一样用于版本控制 ... -
多线程使用中的一些好习惯
2012-01-17 00:24 2633本文主要介绍个人在多线程使用和调优中总结一些线程使用比较好的习 ... -
ThreadLocal 介绍及使用举例
2012-01-05 21:41 0参考: http://lavasoft.blog.51cto ... -
腾讯微博java(android) api
2011-12-15 00:50 12084由于现在腾讯微博提 ... -
java CyclicBarrier CountDownLatch
2011-12-07 23:30 0http://www.iteye.com/topic/7130 ... -
maven用途、核心概念、用法、常用参数和命令、扩展
2011-12-05 19:15 65938最新内容见:Maven介绍,包括作用、核心概念、用法、常用 ... -
OAuth认证介绍及腾讯微博OAuth认证示例
2012-03-20 22:00 6562本文主要介绍OAuth的用 ...
相关推荐
将插件hudson.freemarker_ide_0.9.14文件夹放到eclipse下的plugins文件夹下 按理,这样的话,重启eclipse就应该解决了 但是不成 因为hudson.freemarker_ide_0.9.14文 件夹下的freemarker-2.3.6.jar是比较早的...
Eclipse Hudson是用Java编写的持续集成(CI)工具,它在servlet容器(例如Apache Tomcat或GlassFish应用服务器)中运行。它支持SCM工具,包括CVS,Subversion,Git和Clearcase,并可以执行基于Apache Ant和Apache ...
freemar在eclipse中没有提示,样式一片灰白,看着以及编写给人很不爽的感觉,找了很长时间才找的有用插件 使用步骤 1.解压后找到hudson.freemarker_ide_0.9.14 2.加到eclipse的plugins下 3.重启eclipse 若依旧未成功...
Jenkins,简单的说就是一个开源的持续集成服务器,是Hudson的继续。Jenkins提供了易于使用的持续集成系统,使开发者更专注于业务逻辑的实现。Jenkins能实时监控集成过程中的问题,提供详细的日志信息,还能以图表的...
Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java...
背景案例第5章 坐标和依赖第6章 仓库第7章 生命周期和插件第8章 聚合与继承第9章 使用nexus创建私服第10章 使用maven进行测试第11章 使用hudson进行持续集成第12章 使用maven构建web应用第13章 版本管理第...
从静态分析到动态分析(单元测试)、从系统分析到人工评审、从历史分析到现在的版本分析、从Web客户端到Eclipse插件、从本地分析到远程分析、从集成其他代码分析插件(FindBugs、Checkstyle、PMD等)到作为插件被CI...
扩展性地讲解了如何Maven和Archetype插件,这部分内容对需要编写插件扩展Maven或需要编写Archetype维护自己的项目骨架以更便于团队开发的读者来说尤为有帮助。它实战性强,不仅绝大部分知识点都有相应的案例,而且...
扩展性地讲解了如何Maven和Archetype插件,这部分内容对需要编写插件扩展Maven或需要编写Archetype维护自己的项目骨架以更便于团队开发的读者来说尤为有帮助。它实战性强,不仅绝大部分知识点都有相应的案例,而且...
扩展性地讲解了如何Maven和Archetype插件,这部分内容对需要编写插件扩展Maven或需要编写Archetype维护自己的项目骨架以更便于团队开发的读者来说尤为有帮助。它实战性强,不仅绝大部分知识点都有相应的案例,而且...
扩展性地讲解了如何Maven和Archetype插件,这部分内容对需要编写插件扩展Maven或需要编写Archetype维护自己的项目骨架以更便于团队开发的读者来说尤为有帮助。它实战性强,不仅绝大部分知识点都有相应的案例,而且...
扩展性地讲解了如何Maven和 Archetype插件,这部分内容对需要编写插件扩展Maven或需要编写Archetype维护自己的项目骨架以更便于团队开发的读者来说尤为有帮助。它实战性强,不仅绝大部分知识点都有相应的案例,而且...
了如何 Maven和 Archetype插件,这部分内容对需要编写插件扩展 Maven或需要编写 Archetype维护自己的项目 骨架以更便于团队开发的读者来说尤为有帮助。它实战性强,不仅绝大部分知识点都有相应的案例,而且本书还 在...
扩展性地讲解了如何Maven和Archetype插件,这部分内容对需要编写插件扩展Maven或需要编写Archetype维护自己的项目骨架以更便于团队开发的读者来说尤为有帮助。它实战性强,不仅绝大部分知识点都有相应的案例,而且...