首页 / 软件开发 / 数据结构与算法 / 使用 Subversion、Hudson 和 Eclipse 构建持续集成系统
使用 Subversion、Hudson 和 Eclipse 构建持续集成系统2013-10-09 ibm 宁 宁持续集成系统简介持续集成系统是指持续地编译、测试、检查和部署源代码的系统。Martin Fowler 对持续集成是这样定义的 :持续集成是一种软件开发实践,团队开发成员经常集成它们的工作,通常每个成员每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译、发布、自动化测试)来验证,从而尽快地发现集成错误。这个过程可以大大减少集成的问题,从而让团队能够更快的开发内聚的软件。持续集成有以下几个特点和要求:有统一的源代码库。开发人员基于同一个源代码库进行开发是进行持续集成的一个前提。为了让持续集成系统正确地发挥作用,需要一个源代码管理系统,比如 Subversion。实现了软件构建和测试自动化。使用一些持续集成软件,如 Hudson,自动完成软件的构建和测试。每次代码递交后都会在持续集成服务器上触发一次构建。在开发过程中,如果开发人员本地的编译环境存在差异,就可能会出现其中一个开发人员的修改在他本地验证通过,但提交到版本库后,另外一个开发人员下载到他自己的机器上却无法编译通过。为了避免出现这种情况,需要创建了专门的持续集成服务器,统一编译环境的配置,开发人员的每一次提交都会在持续集成服务器上进行集成和测试。这样就保证开发人员从版本库中获取到的版本完全可以在本地的机器上面可以顺利编译。测试环境要和产品发布的实际环境一致。持续集成的目的就是为了快速集成并验证问题,然后发布。为了保证持续集成的产品最后可以顺利发布,持续集成的测试环境必须和产品实际的运行环境保持一致,这样用户才能拿到真正通过测试检验的产品。持续集成有下列的好处和优点:减少重复过程,提高工作效率。从代码提交到软件发布的过程包括代码构建、测试、部署等环节,每个环节对于开发工程师而言是费时费力而又没有产出的过程,并且每次代码的修改都会重复这个过程。持续集成系统可以将这些重复的动作都变成自动化的,无需太多人工干预,可以将项目成员从这种重复劳动中解放出来从而投入到其他更有价值的工作中去。提高修复问题的质量,可以随时生成可交付的质量可靠的软件,减少项目风险。我们利用持续集成,可以经常对源码进行修改,并将这些修改及时和其他代码进行集成。一旦发现问题,会在第一时间由开发人员解决,问题会很快得到修复。这种一旦有问题出现,立即修复的模式,由于没有很多问题叠加在一起,修复问题会更加容易,修复的质量也更高。并且可以随时生成可交付的质量可靠的软件。持续集成一天中可以进行多次的集成并做相应的测试,有利于提前及时地发现缺陷,将问题在项目的前期解决,避免了将问题遗留到项目后期,导致不能及时交付软件的风险。如果没有持续集成,这些问题可能要累积到交付前的集成测试的时候才发现,这时,很多问题交织在一起,使得修复问题更困难,而急于修复这些缺陷又有可能引入新的缺陷,使得修复的质量降低,有可能会导致延迟发布产品,最终可能导致项目失败。