持续集成,Hudson对Maven2的强大支持

持续集成离不开功能强大而又成熟的工具。其中最重要的三个工具是:构建工具,源码控制系统,持续集成服务器。
持续集成中三者基本的合作流程是:

  1. 持续集成服务器从源码控制系统中签出最新的代码。
  2. 持续集成服务器是用构建工具进行构建。
  3. 持续集成服务器发布构建结果。

由此可见这里持续构建服务器起主导作用,因此该工具的优劣直接关系到工作量及工作效果。


Maven2是很好的构建工具,除此之外Ant的用户群也很广泛。源码控制系统有大家熟悉的CVS,SVN等等,最近,分布式源码控制系统如GIT也流行起来。至于持续集成服务器,CruiseControl 在中国用得比较广泛,我也一直用它来做持续集成,也着实忍受了一些它的缺点,直到发现了Hudson。

 

我以前一直用 Maven2 + SVN + CruiseControl 做持续集成,所以对CruiseControl的配置也算比较熟悉了,但是每次要登陆到服务器上,改XML脚本,然后重启服务器,还担心脚本修改错误,实在不能算是个好的体验。而且,和Maven的集成过程中,遇到了一些比较头疼的问题,CruiseControl中所有东西都需要配置的,测试报告位置,结果构件(artifact)位置,都必须一行一行配置,但是多模块的Maven2项目中,这些位置分布在各个模块中,而且随时可能改变,于是修改CruiseControl的配置成了一件很费精神的体力活。究其原因,是CruiseControl没有针对Maven2做优化。

 

看看Hudson 能给我们Maven2用户带来什么。

  • 一切配置都可以在友好的界面上完成,包括Hudson自身的配置和项目特有的配置,值得注意的是有些配置如MAVEN_HOME和Email Server,只需要配置一次,所有的项目就都能用了。XML?不再需要了,不过如果你坚持,也可以通过XML配置。
  • 支持Maven的模块(Module),Hudson对Maven2做了优化,因此它能自动识别Module,每个Module本身也是一个build job。相当灵活。
  • 测试报告聚合,所有模块的测试报告都被聚合在一起了,结果一目了然,使用CruiseControl,这几乎是件不可能完成的任务。
  • 构件指纹(artifact fingerprint),每次build的结果构件都被很好的自动管理,无需任何配置就可以方便的浏览下载。

我个人觉得Hudson相比CruiseControl来说是个比较大的进步,尤其是在用户体验方面。如果使用Maven2作为构建工具,Hudson优势尽显。因此我强烈推荐。更多的Hudson特性,随着使用再慢慢发掘吧。

阅读更多
个人分类: Maven
上一篇使用Profile和Resources Filter隔离测试环境
下一篇使用maven-sql-plugin实现持续数据库集成(CDBI)
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭