您的位置:首页 > 其它

持续集成学习总结(一)

2011-10-31 12:13 204 查看

Ⅲ.Hudson,目前使用最广的持续集成工具.(http://hudson-ci.org/

厂商

Java.net

支持的编程语言

Java

是否开源



价格

免费

主流 SCM 支持程度

Clear Case , VSS, CVS, Subversion , PVCS 等, SCM 支持最为完善

构建管理

并行构建,分布式构建,增量构建,人工强制构建, SCM 触发构建等都有支持

消息通知机制

Email , Run executable , FTP , IRC , Jabber , Lotus Sametime , RSS,SCP,Windows System Tray,Formatted Logging

构建工具支持

Shell 脚本与命令行, Ant, Groovy, OpenMake Meister, Maven, Maven2 , MSbuild , NAnt , Rake (Ruby)

项目管理工具集成



测试工具集成

CppUnit result rendering , JUnit result rendering , NUnit result rendering , Selenium result rendering , PHPUnit result rendering , MSTest result rendering , SilkCentral , Clover result rendering , PMD result rendering

安装与配置

有 windows 安装程序, Self contained distribution (except SCM clients) , N 无需修改构建脚本,支持多个项目,自动配置构建脚本

IDE 集成

Eclipse Plug-in , IntelliJ Plugin

Ⅳ.持续集成流行工具的初步分析与建议

持续集成(continuous integration)作为敏捷编程的基石现在已经被绝大多数的开发团队所广泛采用。而持续集成的工具现如今也是百花齐放,各有千秋,在此主要对比了在Java领域中比较常见的几种CI server(因为公司要求统一整个公司的CI server)。如果想了解更多的工具,可以看这里:

http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix

在此主要针对以下几种CI Server作对比,版本有点多,国内的多选用了一些open source的,而老外那边用得比较多的是商用版本;

CruiseControl (http://cruisecontrol.sourceforge.net/)

Hudson (https://hudson.dev.java.net/)

LuntBuild (http://luntbuild.javaforge.com/)

TeamCity (http://www.jetbrains.com/teamcity/)

AntHill Pro (http://www.anthillpro.com/)

Bamboo (http://www.atlassian.com/software/bamboo/)

QuickBuild (http://www.pmease.com/)

在持续集成领域,OpenSource的CruiseControl和LuntBuild可谓老牌了,尤其是CruiseControl,出自thoughtworks,这可是Martin Fowler的老巢啊。Hudson作为OpenSource里持续集成的后起之秀,现在已经赶超了这两个前辈,目前恐怕是使用最多的一个CI Server了。而后面4个是商用的CI Server,其中TeamCity是来自jetbrains的,jetbrains是开发著名的IDE IntelliJ的公司。Bamboo则是开发著名的Bug Tracking工具Jira和Wiki Confluence的公司atlassian公司出品的。AntHill也属于Continuous Integration界的元老,QuickBuild则是LuntBuild的商业版本,我在下面重点考量的是QuickBuild,因为LuntBuild好像现在更新较慢了,而且QuickBuild现在好像也有了免费的所谓的Community Edition,功能齐全,只是配置数有所限制。在这些商业版本中,TeamCity应该是目前市场占有率最高的。由于公司里比较倾向使用商业版本的服务器,所以我重点比较的是后4种,捎带比较了一下CruiseControl和Hudson。TeamCity和QuickBuild都有各自的免费版本,有兴趣的也可以去看看。

CI Server在本质上就是一个定时调度器。我们配置一系列的项目,然后设定一个定时器,让它干一些活,然后通知大家。所以很多公司都使用所谓Home-made的工具,用cron+Ant/Maven来做持续集成,这个就已经可以达到CI的最简单的功能了。而使用工具,就是我们除了基本的编译和通知功能以外,我们还有很多其它的需求,在公司里,选择CI Server主要考虑以下几点:

·便于公司的统一管理(大约有200+ Projects需要统一管理)

·对于项目本身进行流程管理: Daily Build -> QA Build -> Release Build

·公司AD(Active Directory)的连接以对用户进行权限管理

·Continuous Testing的支持,即对于项目的Test要能产生出详尽的报告以及收集Test的统计数据以作为项目的分析和考量

·Continuous Code Quality Analysis的支持,即能处理项目产生的Coverage报告,Code的static analysis报告,并且能收集这些报告的统计数据以作项目的分析和考量

·与SCM工具的集成,我们公司主要有三种VCS,ClearCase, Subversion和StarTeam

·与其它工具的集成,如bug tracking工具,IDE集成等等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: