`
classtwo5367
  • 浏览: 37580 次
  • 性别: Icon_minigender_1
  • 来自: Cork
最近访客 更多访客>>
社区版块
存档分类
最新评论

Hudson 插件开发(Part 1:准备工作)

阅读更多
持续集成(CI)是将多个团队成员贡献的代码频繁持续的构建并给与反馈,而不必将寻找和修复缺陷的过程放在开发后期。在典型的持续集成周期中,代码首先被周期性的从版本控制服务器(如CVS或Subversion)中更新下来,随后调用自动化编译脚本(如Ant或Maven)编译,并运行所有测试用例,给出结果分析的报告。

java.net上的开源工具Hudson便是一款优秀的持续集成工具,目前的发展速度很快,并且在吸收了众多CI服务器的优点和长处。在自动构建工具支持方面,Hudson可以同Maven紧密集成,并基于Maven依赖图确定需要重新编译的项目。

作为CI服务器,在Hudson项目的官方站点下载War格式的安装包后,可以方便的部署在GlassFish或Tomcat容器之上。在Hudson中,配置一个新的项目也十分快速直观,在新建 Hudson工程时填写名称和描述信息、设定检查代码储存库的时间间隔、指定本地代码编译路径、指定储存库的访问路径和授权用户、填写工程和分支名称以及构建完成后的动作等,就完成了整个CI工程的配置工作。

在结果展示方面,用户可以在编译日志中查看Hudson通过不同颜色标记列出的信息。Hudson还提供了易用的报表功能,并拥有强大的插件支持,如具有能显示测试结果趋势等信息的插件,以及随时间轴跟踪Bugs并监控代码覆盖的插件。在通知机制方面,Hudson可以方便的与用户建立联系,Hudson 提供了电子邮件通知选项,还支持以RSS方式输出报错通知。

目前,包括NetBeans项目本身以及Ruby IDE在内的众多项目都在使用Hudson实现持续集成,更多Hudson的相关内容,可以在Hudson的Wiki中查看并了解详细的使用方式。

同时Hudson支持插件扩展,你可以通过其的插件管理功能从网络上下载你所需要的插件,也可以自己为所在的工作团队创建符合需要的插件。下面我就来介绍下如何开发一个Hudson的插件

首先你要有Maven 2和JDK1.6以上,这是必须的。然后在你的Maven 2的setting.xml 文件中加入下列代码
<settings>
..
<profiles>
  <profile>
    <id>hudson</id>

    <activation>
      <activeByDefault />
    </activation>

    <pluginRepositories>
      <pluginRepository>
        <id>m.g.o-public</id>
        <url>http://maven.glassfish.org/content/groups/public/</url>
      </pluginRepository>
    </pluginRepositories>
    <repositories>
      <repository>
        <id>m.g.o-public</id>
        <url>http://maven.glassfish.org/content/groups/public/</url>
      </repository>
    </repositories>
  </profile>
</profiles>

<activeProfiles>
  <activeProfile>hudson</activeProfile>
</activeProfiles>

<pluginGroups>
  <pluginGroup>org.jvnet.hudson.tools</pluginGroup>
</pluginGroups>
..
</settings>


这样会将你的Maven指向有着Hudson-related Maven plugins的仓库,而且允许你使用Hudson Maven plugins的短名字来调用相关的插件(例如:hpi:create 代替org.jvnet.hudson.tools:maven-hpi-plugin:1.23:create)。

接着在CMD中输入

mvn hpi:create


之后会问你一些如groupId和artifactId之类的问题,按照需要来填写就好了。

完成后计算机会自动的创建了一个项目,里面有一些模板代码,可供你学习如何开始写一个Hudson的插件,后面的代码全部来自模版代码。如果你需要在Eclipse里编辑插件可以执行
mvn -DdownloadSources=true eclipse:eclipse



然后你就可以在Eclipse中导入这个项目并开始开发了。


待续……
2
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics