`
linda_fxx
  • 浏览: 15651 次
  • 性别: Icon_minigender_2
最近访客 更多访客>>
社区版块
存档分类
最新评论

【转】关于持续集成

阅读更多
1. 为什么要做持续集成
多个开发在一起工作时会将工作代码集成在一起,如果说某一个开发的代码有不良的影响或者说是对其他代码有冲突,那么就会出现问题。传统模式中,开发一般会很长时间独自完成自己的代码,这些代码集成问题可能会在很长时间内才会被发现,与开发早期内发现会加大更改的难度。
易于定位错误。也就是当你的持续集成失败了,说明你新加的代码或者修改的代码引起了错误,这样你很容易的就可以知道到底是谁犯了错误,可以找谁来讨论。
及早在项目里取得系统级的成果。因为代码已经被集成起来了,所以即使整个系统还不是那么可用,但至少你和你的团队都已经可以看到它已经在那了。
改善对进度的控制。这点非常明显,如果每天都在集成,当然每天都可以看到哪些功能可以使用,哪些功能还没有实现。如果你是程序员,你不用在汇报任务的时候说我完成了多少百分比而烦恼,而如果你是项目经理的话,那么你也不再烦恼程序员说完成了编码的50%到底是个什么概念。
改善客户关系。理由同上。
更加充分地测试系统中的各个单元。这也是我们常讲的Daily Build与Smoke Test相结合带来的绝大好处。
能在更短的时间里建造整个系统。这点恐怕要你实施以后才能得出结论。就我们而言,持续集成并没有为每个项目都缩短时间,但却比没有实施时,项目更加可控,也更加有保证。
2.优点:
随着时间的推移,持续集成带来的更多好处,也逐渐被认识到了,比如说:
有助于项目的开发数据的收集。比如说,项目代码量的变化,经常出错的Tests,经常出错的source code,等等。
与其它工具结合的持续代码质量改进。如与CheckStyle, PMD, FindBugs, Fxcop等等等等的结合。
与测试工具或者框架结合的持续测试。如与xUnit,SilkTest, LoadRunner等等的结合。
便于Code Review。在每个build里,我们都可以知道与前一个build之间有什么改动,然后针对这些改动,我们就可以实施Code Review了。
便于开发流程的管理。比如说,要把一个开发的build提交给测试组作测试,测完满意了,再提交到发布组去发布。
3.工具
Apache's Continuum---开源,用于构建Java项目。由于它是maven的官方构建工具,往往对基于maven的项目提供最好的支持和体验。其管理和配置通过一个居于web的界面进行。
Cruise Control--开源,围绕ANT构建。又称为用于java的‘原始“CI工具。(难配置)
JetBrains Team City-- 一种常用的长夜CI服务器。它的一个独有的特性是,具体有针对
几种IDE的相应插件,这些插件使开发人员可以在其更改提交版本控制系统时进行”预测试“提交(使用此意味着开发人员不可能中断升序的构建)。管理和配置通过基于web的界面进行。
Hudson---开源,支持多种插件可支持其他版本控制系统。管理和配置通过基于web的界面进行。
分享到:
评论

相关推荐

    持续集成的几个步骤

    持续集成(Continuous Integration,简称CI)是一种软件开发实践,它要求开发人员频繁地(通常是每天多次)将代码更改集成到共享的主干中。这个实践的重点在于尽早和频繁地检测到集成错误,确保项目开发的各个分支...

    持续集成与单元测试xmzy.pdf

    持续集成的引入,改变了传统等到开发末期才集成的做法,转而采用频繁集成的方式,通常建议至少每个开发者每天都要进行集成。这种方法使得项目的可见性提高,问题能够快速被发现,从而减少缺陷数量。 持续集成的基本...

    智能运维:浅谈持续集成( CI)、持续交付(CD) 和软件测试.pdf

    智能运维中的持续集成(Continuous Integration, CI)、持续交付(Continuous Delivery, CD)以及软件测试是现代软件开发流程的关键组成部分,它们共同构成了DevOps文化的核心。CI/CD旨在加速软件开发周期,提高软件质量...

    持续集成与企业集成

    在IT行业中,持续集成(Continuous Integration, CI)和企业集成(Enterprise Integration)是两个至关重要的概念,它们在软件开发和企业级系统管理中扮演着核心角色。这些概念的深入理解和有效实施,对于提升软件...

    玩转持续化集成之Jenkins

    为了玩转持续化集成之Jenkins,我们首先需要了解一些基础知识和操作步骤。首先,团队开发过程中常用SVN或GIT来管理代码。对于个人学习或小型团队来说,可以使用VisualSVN Server来搭建一个本地的SVN服务器,而无需...

    藏经阁-持续集成的平衡-14.pdf

    藏经阁-持续集成的平衡-14.pdf 本文总结了阿里云 MVP 戚俊介 对持续集成的平衡之道的分享。在分享中,戚俊介 分享了他在媒体大数据行业的经验,并对持续集成的平衡进行了深入的分析。 首先,戚俊介 提到了持续集成...

    GitLab与Jira持续集成.docx

    GitLab 与 Jira 持续集成 GitLab 和 Jira 是两个非常流行的开发工具, GitLab 是一个基于 Web 的 Git 仓库管理系统,而 Jira 则是一个项目管理和问题跟踪工具。本文将介绍如何将 GitLab 和 Jira 进行集成,从而实现...

    2016TID 敏捷持续集成演讲

    ### 2016TID 敏捷持续集成演讲 #### 一、任务背景及挑战 在当前快速发展的信息技术环境中,传统的软件开发模式已经难以满足市场的需求。特别是对于银行这样的金融机构来说,既要确保金融交易的安全性和准确性,又...

    阿里云MVP戚俊持续集成的平衡之道.pdf

    演讲主题:《持续集成的平衡之道》 从亲历者的角度向大家分享从传统软件企业到Saas服务化企业,持续集成转型的感想,踩过的坑,受过的伤以及甜蜜的果实。也会分享一些特定场景下的技术管理 持续集成的落地方案。

    企业应用Devops持续集成的改造.pptx

    【企业应用DevOps持续集成的改造】是一种针对现代软件开发流程的优化策略,旨在提高效率、质量和速度。在快速变化的IT环境中,DevOps文化、工具链和实践已经成为企业保持竞争力的关键因素。本PPTX文件可能详细阐述了...

    企业持续集成及云端交付之路.pdf

    魅族科技的持续集成和云端交付之路是中国互联网企业从传统IT向现代云计算服务转型的一个缩影。文章中提到的“魅族互联网发展-时间线”描述了互联网行业的几个阶段,从互联网1.0到3.0,并且指出了互联网3.0+的发展...

    一种云计算技术在配网监控系统持续集成方案中的运用.pdf

    本文主要探讨了云计算技术在配电网监控系统中的持续集成方案中的应用,特别是OpenStack技术的引入如何改进了以往的Jenkins与Ansible整合方式的局限性。以下是对文章中涉及的关键知识点的详细阐述: 1. 云计算技术在...

    Jenkins持续集成 & .NET cmd创建日期时间文件夹.rar

    综合标题和描述,我们可以理解这个压缩包可能包含了关于如何在Jenkins中配置.NET项目的持续集成流程,以及如何利用.NET命令行工具创建日期时间命名的文件夹的相关教程或指南。文件列表中唯一的“Jenkins持续集成 & ...

    dgiot-dashboard 开源工业物联网持续集成平台管理端

    【标题】"dgiot-dashboard 开源工业物联网持续集成平台管理端" 提供了一种针对工业物联网场景的高效解决方案,其核心在于实现设备管理和数据处理的持续集成。这个平台是轻量级的,旨在降低部署和维护成本,提高工作...

    【Jenkins学习笔记】玩转持续集成与持续交付

    【Jenkins学习笔记】玩转持续集成与持续交付 Jenkins是开源软件项目中的一个重要工具,专注于持续集成和持续交付。作为一个基于Java开发的可拓展平台,它的主要功能包括自动构建、测试和集成软件项目,同时监控定时...

    2.6 Golang项目的测试,持续集成以及部署策略.pdf

    ### Golang项目的测试、持续集成及部署策略 #### 一、引言 随着Go语言(又称Golang)的兴起,越来越多的企业开始将其作为主要的技术栈之一。本文将深入探讨Go语言在项目中的测试、持续集成及部署策略,特别是通过...

    Jenkins+Gradle实现android开发持续集成

    ### Jenkins+Gradle 实现 Android 开发持续集成 在当今快速发展的软件开发领域,持续集成(CI)已经成为提高软件质量、加快开发周期的关键技术之一。本文将详细介绍如何使用Jenkins结合Gradle实现Android项目的持续...

    系统集成教材学习

    系统集成是一种将不同的硬件、软件、...同时,关注行业动态和技术发展也是持续提升专业素养的重要途径。对于有工作经验的人来说,系统集成的学习能够帮助他们更好地应对工作中遇到的复杂集成挑战,提升工作效率和质量。

    持续集成入门实践

    NULL 博文链接:https://hello-nick-xu.iteye.com/blog/1995508

Global site tag (gtag.js) - Google Analytics