一种软件持续集成系统及方法技术方案

技术编号:4213856 阅读:242 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种软件持续集成系统,包括:控制执行脚本文件中定 义的构建任务的构建控制器;解析构建日志文件以提取构建错误信息的日 志分析器;存放软件构建的更新内容的版本控制库;版本控制库接口,用 于提供将版本控制库中的构建错误信息的所有者信息送至构建控制器的 通道;定向发送模块,用于将构建错误信息发往其所有者的信息接收端。 本发明专利技术还公开了一种实现软件构建的持续集成方法。使用本发明专利技术,能方便 软件持续集成的开发人员查看、接收与己相关的构建错误信息,过滤大量 无关信息,从而大大提高软件构建效率。

【技术实现步骤摘要】
珠术领域本专利技术涉及软件构建,具体涉及。
技术介绍
持续集成(CI, Continuous Integration)是一种自动化的软件创建 与测试过程,持续集成过程中,开发团队可以每天多次构建他们的软件。 作为一种软件实践,持续集成让开发团队在软件构建时持续收到反馈并进 行改进,而不必等到开发周期后期才寻找和修复缺陷。典型的集成过程包 括获取代码、编译代码、测试代码以及记录测试结果等几个步骤。持续集 成是反复地进行软件集成的过程,通常使用自动化的集成工具来实现上述 步骤。'现有的持续集成工具如CruiseControl之类的检査工具运行时执行 预定义的构建脚本,脚本中定义了持续集成的流程,如从版本控制存储库 获取最新代码,然后进行代码编译、代码测试以及测试结果记录,最后通 过邮件等方式通知用户。版本控制存储库用于集中存放软件的所有代码, 如微软的Visual Source Safe工具,它是集成工具所需要的代码来源。版 本控制,就是通过版本控制库记录程序各个模组的改动,并为每次改动编 上序号,例如,某软件的1.0版本、1.1版本等代码都存放在控制库中, 可以根据版本序号方便的获得历史上任何一个版本的代码。但是,现有的持续集成系统运行时,持续集成失败的结果数据通常存 放在同一个文件中,也就是构建结果文件,这个文件通常包含了软件代码 中所有失败的代码信息,从这个文件中只能了解到整个项目是构建成功还 是构建失败,而无法知道每个错误信息归属于哪一个开发者。一种解决方法是由版本管理员手工进入版本控制存储库,査询每个错 误文件对应的开发者,然后通知开发者修改代码。若构建结果存在大量的 错误,则此种人工分析集成结果文件的方式需要耗费大量的人力成本。另一种常用的解决方法是邮件通知方式,通常是将构建结果发给项目 组所有开发人员,邮件中携带着同样的构建结果文件,开发人员需要人工 阅读构建结果文件,从中找出属于自己的代码错误,然后进行代码修改。此种方式需要耗费每个开发人员大量的时间阅读和自己无关的代码错误信 息,同时也很难判断某个出错代码文件是否属于自己。比如, 一个软件构建项目有3个开发人员A、 B、 C,软件集成后,属于开发人员A的文件1 和属于开发人员B的文件2发生了错误,现有持续集成工具会把这两个错 误都发给项目中的3个人,A 、 B 、 C都需要阅读这2个文件的错误并 人工分析出属于自己的错误,导致耗费很多不必要的人力,且效率低。
技术实现思路
,本专利技术的主要目的就是解决现有技术中的问题,提供一种软件持续集 成系统及方法,能使开发人员只看到与自己相关的构建错误信息,.大大提 高软件构建效率。为实现上述目的,本专利技术提供一种软件持续集成系统,包括 构建控制器,用于控制执行脚本文件中定义的软件构建任务; 日志分析器,用于解析构建日志文件以提取构建错误信息; 版本控制库,用于存放软件构建的更新内容;版本控制库接口 ,用于提供将所述版本控制库中的构建错误信息的所 有者信息送至所述构建控制器的通道;所述软件构建任务包括从所述版本控制库获取代码、编译代码、运 行测试、生成记录编译及测试结果的日志文件、通过所述日志分析器提取 构建错误信息以及通过所述版本控制库接口査询构建错误信息的所有者信 息。还包括分类存储模块,用于按照所有者分类存储构建错误信息。 还包括定向发送模块,用于将构建错误信息发往其所有者的信息接收端o所述定向发送模块为电子邮件发送模块或即时通讯模块。 所述日志分析器包括分析单元和更新接口单元,所述分析单元用于从 构建日志文件中抽取出构建错误信息,所述更新接口单元用于对构成分析 单元的实现模块进行更新,所述实现模块决定所述分析单元所能处理的日 志文件的类型。为实现上述目的,本专利技术还提供一种软件持续集成系统,包括以下步骤Al、运行系统,加载脚本文件并提取其中定义好的构建任务; Bl、执行编译任务,对版本控制库中的更新内容进行编译,并将编译 结果记录在日志文件中;.Cl、执行测试任务,对版本控制库中的更新内容进行测试,并将测试结果记录在日志文件中;Dl、执行日志文件解析任务,提取日志文件中的构建错误信息;El、执行査询任务,从版本控制库中査询出构建错误信息的所有者信息。所述步骤El后还包括以下步骤Fl、执行存储任务,将构建错误信息按其所有者分类存储。 所述步骤El后还包括以下步骤Gl、执行定向.发送任务,将构建错误信息发送至其所有者的信息接收端。'所述步骤D1中,从日志文件解析出编译错误信息-文件名、测试错误 信息-文件名映射关系数据;所述步骤E1中,根据所述文件名从版本控制 库提取出文件名_用户名映射关系数据。所述步骤G1包括以下子步骤Gl 1 、加载含有用户名_电子邮件地址映射关系数据的邮件信息定义文件;G12、从所述邮件信息定义文件获取所述文件名-用户名映射关系数据 中的用户名所对应的电子邮件地址;G13、根据所述编译错误信息-文件名、测试错误信息-文件名映射关系数据获取文件名对应的错误信息;'G14、将所述错误内容信息以电子邮件形式送往其对应的电子邮件地址。本专利技术的有益效果是本专利技术的持续集成系统较现有技术增加了日志分析器和版本控制库 接口,其中,日志分析器负责解析并提取出构建日志文件中的构建错误信 息,版本控制库接口则提供将构建错误信息的所有者信息送至构建控制器 的通道,这样,在持续集成过程中,构建控制器在执行了更新代码的编译、 测试,生成记录结果的日志文件的任务后,调用由日志分析器和版本控制 库接口定义于脚本文件中的任务,就能生成构建错误信息和其所有者的对 应数据。进一步地,增加分类存储模块,可将该映射关系数据按照所有者 分类存储于对应的存储空间,增加定向发送模块例如电子邮件发送模块, 可将相应的构建错误信息发送至其所有者的信息接收端,对于后者,还能 批量发送构建错误信息至不同邮件地址。构建错误信息按照所有者分类发6送或保存,使每个开发人员都能滤掉无关信息而只看到和自己相关的错误 信息,避免花大量賴力处理无关的错误信息,同时,也不再需要配置管理 员及开发人员人工去分析构建结果,将人工解决方式变为自动化方式,大 量节约人力,提高软件生产效率,降低软件项目的成本。附图说明图1为本专利技术的持续集成系统一种实施例的结构示意图; 图2为本专利技术的持续集成系方法一种实施例的执行流程图。 本专利技术的特征及优点将通过实施例结合附图进行详细说明。具体实施方式请参考图l,本实施例的持续集成系统包括构建控制器、日志分析器、 版本控制库接口以及版本控制库等几个模块,各模块的构成及功能如下构建控制器,,用于控制执行脚本文件中定义的构建任务,本实施例采 用Ant控制器。Ant (Another Nest Tool)是基于Java (—种跨平台的面 向对象编程语言)的构建工具,可以完成不同的构建功能,Ant工具的核 心即Ant控制器。Ant通过一系列的任务(Task)实现构建过程,由Ant 控制器负责执行任务,因此先要对以上其它模块功能以任务的方式进行定 义。所谓任务是独立的功能单元,例如版本代码获取的任务、编译Java 代码、Jsp代码的任务、发送Email的任务等。定义好的任务存放在Ant 脚本文件(Ant脚本文件是定义执行流程的xml文件本文档来自技高网
...

【技术保护点】
一种软件持续集成系统,其特征在于包括: 构建控制器,用于控制执行脚本文件中定义的软件构建任务; 日志分析器,用于解析构建日志文件以提取构建错误信息; 版本控制库,用于存放软件构建的更新内容; 版本控制库接口,用于提供 将所述版本控制库中的构建错误信息的所有者信息送至所述构建控制器的通道; 所述软件构建任务包括:从所述版本控制库获取代码、编译代码、运行测试、生成记录编译及测试结果的日志文件、通过所述日志分析器提取构建错误信息以及通过所述版本控制库接口 查询构建错误信息的所有者信息。

【技术特征摘要】

【专利技术属性】
技术研发人员:刘玉锋
申请(专利权)人:卓望数码技术深圳有限公司
类型:发明
国别省市:94

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1