最近正好有机会在工作中推广持续集成,就借机在项目中做了一些应用,起初选择了老牌的CruiseControl
,不过在实际的使用中总感觉CruiseControl在多模块的Maven项目方面有些力不从心,而且结果报表和使用界面上也不是让我很满意,配置起来还有点麻烦,也许TW的几个核心贡献者都把精力放在Cruise上了吧……
在一个项目结束后,决定抛弃CruiseControl,在新项目里试试Hudson
,经过几天的接触,有种相见恨晚的感觉。Hudson几乎就是完全符合我对持续集成工具的要求,有些地方甚至还大大超过了我的预期。
1、安装
从http://hudson-ci.org/
下载最新的hudson.war
包。如果只是试用,可以直接用:
java -jar hudson.war
正常使用时建议部署到Web容器中,以Tomcat为例,将文件解压到webapps里即可。
注1:
Tomcat中建议将URI编码设为UTF-8
,修改Tomcat的conf/server.xml,在<Connector>中添加URIEncoding="UTF-8"。
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"
/>
注2:
建议修改Hudson的HUDSON_HOME
配置,默认的位置比较隐蔽,可以指定一个位置,专门用于Hudson存放文件。打开webapps/hudson/WEB-INF/web.xml,找到HUDSON_HOME的env-entry。
<env-entry>
<env-entry-name>HUDSON_HOME</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>D:/Hudson</env-entry-value>
</env-entry>
2、全局设置
Manage Hudson中选择Configure System,其中可对Maven、JDK、Ant进行设置,因为使用Hudson时一般都已经安装好了这些东西,所以不用勾选Install automatically,只需在Add时指定名字和相应的HOME位置即可。
因为在进行构建及测试等工作时,会占用大量内存,所以需要调整MAVEN_OPTS
,可以调整全局MAVEN_OPTS,也可以为每个项目单独设置MAVEN_OPTS,例如,设置Global MAVEN_OPTS为-Xmx1024m -Xms512m。
3、安装插件
插
件机制为Hudson带来了无限的扩展性,默认安装后Hudson已经自带了一些插件,例如maven、subversion等,可以通过Hudson管
理界面中的Plugin Manager来安装更多插件。由于我在过程中需要做静态代码分析和单元测试覆盖率分析,所以需要额外安装一些插件:
- Static Analysis Collector Plug-in
- Static Analysis Utilities
- Checkstyle Plug-in
- FindBugs Plug-in
- PMD Plug-in
- Emma Plugin
此外,如果需要定制邮件通知内容,还可以安装Hudson Email Extension Plugin。以及Dashboard View,用于显示仪表板。
4、项目配置
虽然Hudson也有rake的插件,不过我们还是以Maven为主,所以在New Job里选择Build a maven2 project,新建完成后也可以对项目设置进行修改。
凡是有问题,先找右侧的问号,基本就能知道该如何配置了。
需要生成报告,就需要提供报告所需的数据,因此在正式使用前需要在项目的pom.xml中配置Maven插件。
在<reporting>段中增加如下内容(版本号请根据最新版本调整):
<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>2.3</version>
<configuration>
<xmlOutput>true</xmlOutput>
<threshold>High</threshold>
<effort>Default</effort>
<relaxed>true</relaxed>
<findbugsXmlOutput>true</findbugsXmlOutput>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.4</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<configuration>
<targetJdk>1.5</targetJdk>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>emma-maven-plugin</artifactId>
<version>1.0-alpha-2</version>
<inherited>true</inherited>
</plugin>
</plugins>
</reporting>
<build>段中同样加入emma插件:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>emma-maven-plugin</artifactId>
<version>1.0-alpha-2</version>
<inherited>true</inherited>
<executions>
<execution>
<id>instrument</id>
<phase>pre-site</phase>
<goals>
<goal>instrument</goal>
</goals>
</execution>
</executions>
</plugin>
注3:
如果觉得静态代码分析的各个规则过于严格,希望定制,也可以在pom.xml中进行定制,模块化的项目中,子模块中的配置可以覆盖上级配置,以Findbugs为例,如果希望去掉一些规则,可在<plugin>的<configuration>配置中加入:
<excludeFilterFile>findbugs-exclude.xml</excludeFilterFile>
同时新建findbugs-exclude.xml,内容如下:
<FindBugsFilter>
<Match>
<Bug pattern="EI_EXPOSE_REP, EI_EXPOSE_REP2" />
</Match>
</FindBugsFilter>
完成所有的配置后,可以等待定时执行或者手工去触发构建,构建之后就能在项目页面查看到漂亮的图表及报告了。
分享到:
相关推荐
NULL 博文链接:https://zhengdl126.iteye.com/blog/1169472
项目基于hudson的CI环境搭建的培训文档
Hudson安装与使用,Hudson配置,Hudson插件Hudson安装与使用,Hudson配置,Hudson插件Hudson安装与使用,Hudson配置,Hudson插件Hudson安装与使用,Hudson配置,Hudson插件Hudson安装与使用,Hudson配置,Hudson插件...
希望大家觉得好用就行,不用描述,需要的人都知道,一款非常轻量级的CI工具
Hudson homepage: http://hudson-ci.org/ 从这个地址下载下hudson 的war包,hudson是一个web应用.其中自
Hudson持续集成服务器的安装配置和使用
eclipse集成hudson Ci服务器的插件
Hudson 是一种革命性的开放源码 CI 服务器,它从以前的 CI 服务器吸取了许多经验教训。Hudson 最吸引人的特性之一是它很容易配置:很难找到更容易设置的 CI 服务器,也很难找到开箱即用特性如此丰富的 CI 服务器。...
在本教程中,讲解如何安装、配置和使用 Hudson 作为 CI 服务器,但是要记住,CI 远不只是个工具。实际上,使用的工具可能是 CI 比较次要的方面,因为 CI 工具所做的仅仅是在代码存储库中探测到修改时运行构建。构建...
Hudson 最吸引人的特性之一是它很容易配置:很难找到更容易设置的 CI 服务器,也很难找到开箱即用特性如此丰富的CI 服务器。Hudson 容易使用的第二个原因是它具有强大的插件框架 ,所以很容易添加特性。例如,一个 ...
NULL 博文链接:https://dy-f.iteye.com/blog/1845465
目前较为流行的CI持续测试工具。基于web,配置简单。较之TeamCity等有着较为明显的优势。 本文非常详细的描述了Hudson的配置和应用。对持续集成CI感兴趣的童鞋可以看看。
Hudson 是一种革命性的开放源码 CI (持续集成)服务器,它从以前的 CI 服务器吸取了许多经验教训。Hudson 最吸引人的特性之一是它很容易配置:很难找到更容易设置的 CI 服务器,也很难找到开箱即用特性如此丰富的 CI ...
For Production use, Hudson 3.3.1 from the Eclipse Foundation is now available. This WAR file is suitable for any O/S. We recommend that users of 3.0, 3.1, 3.2 or 3.3.0 upgrade to this release. his ...
Hudson 是一个可扩展的持续集成引擎。 主要用于: 1.持续、自动地构建/测试软件项目,如CruiseControl与DamageControl。 2.监控一些定时执行的任务。 Hudson拥有的特性包括: •易于安装-只要把hudson.war部署到...
hudson-3.2.2 放在tomcat下直接打开即可
hudson 中文操作手册 hudson 中文操作手册 hudson 中文操作手册
hudson安装及其配置 hudson平台搭建及使用 Hudson使用参考手册 关于hudson远程自动构建发布 使用hudson_搭建daily_build_系统
hudson contiunous integration server 3.1.2开源的,好用!
hudson持续集成包hudson持续集成包