用于持续集成的自动化编译方法和编译装置制造方法

文档序号:6552387阅读:223来源:国知局
用于持续集成的自动化编译方法和编译装置制造方法
【专利摘要】本发明提供了一种用于持续集成的自动化编译方法及装置,其中,自动化编译方法,包括:获取用于描述至少一个构建单元中每个构建单元内的每个组件与其他组件之间的依赖关系的配置文件;解析所述配置文件,根据每个组件与其他组件之间的依赖关系生成每个构建单元的依赖关系集,并根据依赖关系集确定每个构建单元内的组件编译顺序;根据所述每个构建单元的所述依赖关系集和每个构建单元内的组件编译顺序,对所述至少一个构建单元进行编译。本发明的技术方案实现了自动对构建单元内各组件之间的依赖关系进行分析构建,无需开发人员人工分析构建单元内各组件之间的依赖关系,提高了软件生产效率,进而确保了持续集成具有稳定、高效、准确的优点。
【专利说明】用于持续集成的自动化编译方法和编译装置

【技术领域】
[0001]本发明涉及计算机【技术领域】,具体而言,涉及一种用于持续集成的自动化编译方法和一种用于持续集成的自动化编译装置。

【背景技术】
[0002]持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。
[0003]自动化构建的核心在于产品标准化和构建脚本的生成。在此工具应用之前,自动化的构建脚本一直由开发人员手动维护。在开发过程中,开发人员每天都向版本库提交代码,各产品内部及外部的构建单元之间的依赖关系随时有可能变化,修改自动化的构建脚本就给开发人员增加了额外的工作负担。同时,自动化的构建还要起到对持续集成的验证作用,开发人员编写自动化的构建脚本难免存在纰漏,对于持续集成每天的完整运行有一定影响。
[0004]因此,如何能够实现自动对构建单元内各组件之间的依赖关系进行分析,提高软件生产效率成为亟待解决的技术问题。


【发明内容】

[0005]本发明正是基于上述技术问题,提出了一种新的用于持续集成的自动化编译方案,实现了自动对构建单元内各组件之间的依赖关系进行分析构建,无需开发人员人工分析构建单元内各组件之间的依赖关系,降低了开发人员的工作负担,提高了软件生产效率,进而确保了持续集成具有稳定、高效、准确的优点。
[0006]有鉴于此,本发明提出了一种用于持续集成的自动化编译方法,包括:获取用于描述至少一个构建单元中每个构建单元内的每个组件与其他组件之间的依赖关系的配置文件;解析所述配置文件,根据所述每个组件与其他组件之间的依赖关系生成所述每个构建单元的依赖关系集,并根据所述依赖关系集确定所述每个构建单元内的组件编译顺序;根据所述每个构建单元的所述依赖关系集和每个构建单元内的组件编译顺序,对所述至少一个构建单元进行编译。
[0007]在该技术方案中,通过获取用于描述每个构建单元内的组件之间的依赖关系的配置文件,以根据配置文件生成构建单元的依赖关系集,进而对构建单元的编译,使得在进行持续集成时,实现了自动对构建单元内各组件之间的依赖关系进行分析构建,无需开发人员人工分析构建单元内各组件之间的依赖关系,降低了开发人员的工作负担,节约了人力资源,提高了软件生产效率,并且降低了软件项目的开发成本,确保持续集成具有稳定、高效、准确的优点。
[0008]在上述技术方案中,优选地,解析任一构建单元的所述配置文件的步骤具体为:判断所述配置文件的格式是否为预定的标准格式;若判定所述配置文件的格式为所述标准格式,则将所述任一构建单元中的所有组件的内容转化为数据对象,以进行加载;若判断所述配置文件的格式不是所述标准格式,则读取所述配置文件中预定义的关键字和所述任一构建单元内的预编译包的层级依赖关系,根据所述任一构建单元内的预编译包的层级依赖关系确定所述任一构建单元内的所有组件,将所述任一构建单元中的所有组件的内容转化为数据对象,以进行加载。
[0009]在该技术方案中,通过对配置文件格式是否为标准格式进行判断,使得能够针对标准格式的配置文件和非标准格式的配置文件采用不同的解析方式,进而能够准确地获取到构建单元内部的组件依赖关系。
[0010]在上述技术方案中,优选地,在对所述至少一个构建单元进行编译之前,还包括:根据所述依赖关系集判断所述每个构建单元内是否存在不依赖于其他组件的基础组件;若判定任一构建单元内存在所述基础组件,则执行所述编译的步骤;若判定任一构建单元内不存在所述基础组件,则进行报错处理。
[0011]在该技术方案中,若依赖关系集中不存在基础组件,即依赖关系集为环形依赖,则在编译时会出现死循环,影响系统的稳定性,因此,通过对依赖关系集中是否存在不依赖于其他组件的基础组件进行判断,使得能够在依赖关系集内出现问题,即出现环形依赖时,能够及时提醒开发人员,确保系统的稳定性。
[0012]在上述技术方案中,优选地,对所述至少一个构建单元进行编译的步骤具体为:根据所述每个构建单元的所述依赖关系集和每个构建单元内的组件编译顺序生成用于对所述至少一个构建单元进行编译的描述文件;按照设定的执行时间,调取并执行所述描述文件。
[0013]在上述技术方案中,优选地,还包括:根据所述每个构建单元的依赖关系集,以树形结构显示所述至少一个构建单元内的组件之间的依赖关系;在接收到显示指定组件的依赖情况的指令时,显示所述指定组件依赖的其他组件。
[0014]在该技术方案中,通过以树形结构显示构建单元内的组件之间的依赖关系,使得开发人员能够直观地掌握到构建单元内组件的依赖关系,以便于对各组件之间的依赖关系进行调整或查看。
[0015]根据本发明的另一方面,还提出了一种用于持续集成的自动化编译装置,包括:获取单元,获取用于描述至少一个构建单元中每个构建单元内的每个组件与其他组件之间的依赖关系的配置文件;处理单元,用于解析所述配置文件,根据所述每个组件与其他组件之间的依赖关系生成所述每个构建单元的依赖关系集,并根据所述依赖关系集确定所述每个构建单元内的组件编译顺序;编译单元,用于根据所述每个构建单元的所述依赖关系集和每个构建单元内的组件编译顺序,对所述至少一个构建单元进行编译。
[0016]在该技术方案中,通过获取用于描述每个构建单元内的组件之间的依赖关系的配置文件,以根据配置文件生成构建单元的依赖关系集,进而对构建单元的编译,使得在进行持续集成时,实现了自动对构建单元内各组件之间的依赖关系进行分析构建,无需开发人员人工分析构建单元内各组件之间的依赖关系,降低了开发人员的工作负担,节约了人力资源,提高了软件生产效率,并且降低了软件项目的开发成本,确保持续集成具有稳定、高效、准确的优点。
[0017]在上述技术方案中,优选地,所述处理单元具体用于:判断所述配置文件的格式是否为预定的标准格式,若判定所述配置文件的格式为所述标准格式,则将所述任一构建单元中的所有组件的内容转化为数据对象,以进行加载,以及若判断所述配置文件的格式不是所述标准格式,则读取所述配置文件中预定义的关键字和所述任一构建单元内的预编译包的层级依赖关系,根据所述任一构建单元内的预编译包的层级依赖关系确定所述任一构建单元内的所有组件,将所述任一构建单元中的所有组件的内容转化为数据对象,以进行加载。
[0018]在该技术方案中,通过对配置文件格式是否为标准格式进行判断,使得能够针对标准格式的配置文件和非标准格式的配置文件采用不同的解析方式,进而能够准确地获取到构建单元内部的组件依赖关系。
[0019]在上述技术方案中,优选地,还包括:判断单元,用于根据所述依赖关系集判断所述每个构建单元内是否存在不依赖于其他组件的基础组件;报错单元,用于在所述判断单元判定所述任一构建单元内不存在所述基础组件时,进行报错处理;所述编译单元还用于,在所述判断单元判定任一构建单元内存在所述基础组件时,执行所述编译的操作。
[0020]在该技术方案中,若依赖关系集中不存在基础组件,即依赖关系集为环形依赖,则在编译时会出现死循环,影响系统的稳定性,因此,通过对依赖关系集中是否存在不依赖于其他组件的基础组件进行判断,使得能够在依赖关系集内出现问题,即出现环形依赖时,能够及时提醒开发人员,确保系统的稳定性。
[0021]在上述技术方案中,优选地,所述编译单元包括:生成单元,用于根据所述每个构建单元的所述依赖关系集和每个构建单元内的组件编译顺序生成用于对所述至少一个构建单元进行编译的描述文件;执行单元,用于按照设定的执行时间,调取并执行所述描述文件。
[0022]在上述技术方案中,优选地,还包括:显示单元,用于根据所述每个构建单元的依赖关系集,以树形结构显示所述至少一个构建单元内的组件之间的依赖关系,以及在接收到显示指定组件的依赖情况的指令时,显示所述指定组件依赖的其他组件。
[0023]在该技术方案中,通过以树形结构显示构建单元内的组件之间的依赖关系,使得开发人员能够直观地掌握到构建单元内组件的依赖关系,以便于对各组件之间的依赖关系进行调整或查看。
[0024]通过以上技术方案,实现了自动对构建单元内各组件之间的依赖关系进行分析构建,无需开发人员人工分析构建单元内各组件之间的依赖关系,降低了开发人员的工作负担,提闻了软件生广效率,进而确保了持续集成具有稳定、闻效、准确的优点。

【专利附图】

【附图说明】
[0025]图1示出了根据本发明的实施例的用于持续集成的自动化编译方法的示意流程图;
[0026]图2示出了根据本发明的实施例的用于持续集成的自动化编译装置的示意框图;
[0027]图3A示出了根据本发明的实施例的标准化配置文件的格式示意图;
[0028]图3B示出了根据本发明的实施例的一种非标准化配置文件的格式示意图;
[0029]图4示出了根据本发明的实施例分析组件之间依赖关系的示意图;
[0030]图5示出了根据本发明的实施例的依赖情况显示方式示意图。

【具体实施方式】
[0031]为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和【具体实施方式】对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
[0032]在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
[0033]图1示出了根据本发明的实施例的用于持续集成的自动化编译方法的示意流程图。
[0034]如图1所示,根据本发明的实施例的用于持续集成的自动化编译方法,包括:步骤102,获取用于描述至少一个构建单元中每个构建单元内的每个组件与其他组件之间的依赖关系的配置文件;步骤104,解析所述配置文件,根据所述每个组件与其他组件之间的依赖关系生成所述每个构建单元的依赖关系集,并根据所述依赖关系集确定所述每个构建单元内的组件编译顺序;步骤106,根据所述每个构建单元的所述依赖关系集和每个构建单元内的组件编译顺序,对所述至少一个构建单元进行编译。
[0035]在该技术方案中,通过获取用于描述每个构建单元内的组件之间的依赖关系的配置文件,以根据配置文件生成构建单元的依赖关系集,进而对构建单元的编译,使得在进行持续集成时,实现了自动对构建单元内各组件之间的依赖关系进行分析构建,无需开发人员人工分析构建单元内各组件之间的依赖关系,降低了开发人员的工作负担,节约了人力资源,提高了软件生产效率,并且降低了软件项目的开发成本,确保持续集成具有稳定、高效、准确的优点。
[0036]在上述技术方案中,优选地,解析任一构建单元的所述配置文件的步骤具体为:判断所述配置文件的格式是否为预定的标准格式;若判定所述配置文件的格式为所述标准格式,则将所述任一构建单元中的所有组件的内容转化为数据对象,以进行加载;若判断所述配置文件的格式不是所述标准格式,则读取所述配置文件中预定义的关键字和所述任一构建单元内的预编译包的层级依赖关系,根据所述任一构建单元内的预编译包的层级依赖关系确定所述任一构建单元内的所有组件,将所述任一构建单元中的所有组件的内容转化为数据对象,以进行加载。
[0037]在该技术方案中,通过对配置文件格式是否为标准格式进行判断,使得能够针对标准格式的配置文件和非标准格式的配置文件采用不同的解析方式,进而能够准确地获取到构建单元内部的组件依赖关系。
[0038]在上述技术方案中,优选地,在对所述至少一个构建单元进行编译之前,还包括:根据所述依赖关系集判断所述每个构建单元内是否存在不依赖于其他组件的基础组件;若判定任一构建单元内存在所述基础组件,则执行所述编译的步骤;若判定任一构建单元内不存在所述基础组件,则进行报错处理。
[0039]在该技术方案中,若依赖关系集中不存在基础组件,即依赖关系集为环形依赖,则在编译时会出现死循环,影响系统的稳定性,因此,通过对依赖关系集中是否存在不依赖于其他组件的基础组件进行判断,使得能够在依赖关系集内出现问题,即出现环形依赖时,能够及时提醒开发人员,确保系统的稳定性。
[0040]在上述技术方案中,优选地,对所述至少一个构建单元进行编译的步骤具体为:根据所述每个构建单元的所述依赖关系集和每个构建单元内的组件编译顺序生成用于对所述至少一个构建单元进行编译的描述文件;按照设定的执行时间,调取并执行所述描述文件。
[0041]在上述技术方案中,优选地,还包括:根据所述每个构建单元的依赖关系集,以树形结构显示所述至少一个构建单元内的组件之间的依赖关系;在接收到显示指定组件的依赖情况的指令时,显示所述指定组件依赖的其他组件。
[0042]在该技术方案中,通过以树形结构显示构建单元内的组件之间的依赖关系,使得开发人员能够直观地掌握到构建单元内组件的依赖关系,以便于对各组件之间的依赖关系进行调整或查看。
[0043]图2示出了根据本发明的实施例的用于持续集成的自动化编译装置的示意框图。
[0044]如图2所示,根据本发明的实施例的用于持续集成的自动化编译装置200,包括:获取单元202,获取用于描述至少一个构建单元中每个构建单元内的每个组件与其他组件之间的依赖关系的配置文件;处理单元204,用于解析所述配置文件,根据所述每个组件与其他组件之间的依赖关系生成所述每个构建单元的依赖关系集,并根据所述依赖关系集确定所述每个构建单元内的组件编译顺序;编译单元206,用于根据所述每个构建单元的所述依赖关系集和每个构建单元内的组件编译顺序,对所述至少一个构建单元进行编译。
[0045]在该技术方案中,通过获取用于描述每个构建单元内的组件之间的依赖关系的配置文件,以根据配置文件生成构建单元的依赖关系集,进而对构建单元的编译,使得在进行持续集成时,实现了自动对构建单元内各组件之间的依赖关系进行分析构建,无需开发人员人工分析构建单元内各组件之间的依赖关系,降低了开发人员的工作负担,节约了人力资源,提高了软件生产效率,并且降低了软件项目的开发成本,确保持续集成具有稳定、高效、准确的优点。
[0046]在上述技术方案中,优选地,所述处理单元204具体用于:判断所述配置文件的格式是否为预定的标准格式,若判定所述配置文件的格式为所述标准格式,则将所述任一构建单元中的所有组件的内容转化为数据对象,以进行加载,以及若判断所述配置文件的格式不是所述标准格式,则读取所述配置文件中预定义的关键字和所述任一构建单元内的预编译包的层级依赖关系,根据所述任一构建单元内的预编译包的层级依赖关系确定所述任一构建单元内的所有组件,将所述任一构建单元中的所有组件的内容转化为数据对象,以进行加载。
[0047]在该技术方案中,通过对配置文件格式是否为标准格式进行判断,使得能够针对标准格式的配置文件和非标准格式的配置文件采用不同的解析方式,进而能够准确地获取到构建单元内部的组件依赖关系。
[0048]在上述技术方案中,优选地,还包括:判断单元208,用于根据所述依赖关系集判断所述每个构建单元内是否存在不依赖于其他组件的基础组件;报错单元210,用于在所述判断单元208判定所述任一构建单元内不存在所述基础组件时,进行报错处理;所述编译单元206还用于,在所述判断单元208判定任一构建单元内存在所述基础组件时,执行所述编译的操作。
[0049]在该技术方案中,若依赖关系集中不存在基础组件,即依赖关系集为环形依赖,则在编译时会出现死循环,影响系统的稳定性,因此,通过对依赖关系集中是否存在不依赖于其他组件的基础组件进行判断,使得能够在依赖关系集内出现问题,即出现环形依赖时,能够及时提醒开发人员,确保系统的稳定性。
[0050]在上述技术方案中,优选地,所述编译单元206包括:生成单元2062,用于根据所述每个构建单元的所述依赖关系集和每个构建单元内的组件编译顺序生成用于对所述至少一个构建单元进行编译的描述文件;执行单元2064,用于按照设定的执行时间,调取并执行所述描述文件。
[0051]在上述技术方案中,优选地,还包括:显示单元212,用于根据所述每个构建单元的依赖关系集,以树形结构显示所述至少一个构建单元内的组件之间的依赖关系,以及在接收到显示指定组件的依赖情况的指令时,显示所述指定组件依赖的其他组件。
[0052]在该技术方案中,通过以树形结构显示构建单元内的组件之间的依赖关系,使得开发人员能够直观地掌握到构建单元内组件的依赖关系,以便于对各组件之间的依赖关系进行调整或查看。
[0053]以下结合图3A至图5详细说明本发明的技术方案。
[0054]本发明的技术方案需要构建控制器,用于控制执行脚本文件中定义的构建任务,本工具采用Ant (Another Nest Tool)控制器。Ant是基于Java的构建工具,可以完成不同的构建功能。Ant通过一系列的任务(Task)实现构建过程,Ant控制器负责执行任务,因此先定义它所要执行的任务。所谓任务是独立的功能单元,例如版本代码获取的任务、编译Java代码、Jsp代码的任务、执行测试组件的任务等。定义好的任务存放在Ant脚本文件(build, xml)中,系统运行时,Ant控制器可对Ant脚本文件进行解析并调用和执行这些任务。本工具中的构建任务包括:从版本控制库获取代码、编译代码、运行测试、生成记录编译及测试结果的日志文件、通过分析器提取测试结果信息。
[0055]具体通过以下步骤:
[0056]1、集成以产品为单位,通过module, xml存放的位置指定自动化编译的单元和名称。在构建单元中各项目源码以组件形式并行存放,依赖关系配置文件compentent.xml存在于每个组件下,并且拥有这个配置文件的组件才会被工具识别并编译。
[0057]2、扫描构建单元文件夹下的所有文件,找出module, xml和compentent.xml,并判断其是否标准化。
[0058]对于标准化配置文件,确定构建单元和其下面的若干组件,读取其内容转化为数据对象置于内存中。其中,标准化配置文件的格式可以如图3A所示。
[0059]对于非标准化配置,首先读取配置定义关键字,再按每个构建单元取出预编译包的层级依赖,之后按标准化进行处理。其中,非标准化配置文件的一种格式如图3B所示。
[0060]3、把compentent.xml的内容传入递规方法进行解析。具体如图4所示,其中,一个模块(即构建单元)包括组件A、B、C、D、E、F、G,其中组件之间的依赖关系为:A依赖B、C依赖A、D依赖A、E依赖F、F依赖D、G依赖E,则经过分析之后可得到组件内的依赖关系集。
[0061]该步骤的核心算法是分析图4依赖关系的递规方法。以E组件为例,E的编译依赖于F,而F又依赖于D,D也存在依赖关系,所以要递规到最后一个没有依赖的组件B,完成规递循环。如果B仍然存在依赖关系,就会出现循环依赖,在日志中记录出现问题的组件后退出程序。分析过程完成后得出了两个重要的集合:编译顺序和依赖关系集。
[0062]构建单元间依赖关系是通过引用模块jar包完成的。所有编译完成的模块(即构建单元)都会在持续集成环境里生成jar包,这些jar包在互相引用、制作安装盘时使用。
[0063]该工具解析依赖关系时有一定的纠错功能,其中,一个构建单元中至少有一基础组件使依赖终止。若配置失误就会出现死循环,即环形依赖。此时程序抛出异常并记录循环的组件名,以便开发人员进行修改。
[0064]4、生成build, xml以及其属性文件build, properties,并写入内容。按照编译顺序可以生成javac结构块的顺序。按照依赖关系集可以生成每个javac结构中的classpath的内容。
[0065]这里的编译语句包括源码编译和测试代码编译。测试代码编译语句与源码相比增加了对源码calss文件的依赖。
[0066]5、读取资源拷贝的配置文件。在该配置文件中,以key — value的形式指定了要拷贝的源路径和目标路径,为持续集成提供动态配置。
[0067]6、按源代码的目录结构,拷贝资源文件到class文件所在目录。之后按集成需要进行打包操作。
[0068]7、生成testNG结构,为自动化测试、统计测试结果做准备。
[0069]8、在定时任务中加入该工具,每天固定时间完成持续集成。
[0070]9、产品内部、产品外部依赖关系可视化。以树形结构展示出所有依赖关系,如图5所示,若在结点处点击,则可显示该部件的依赖情况。具体地,如点击组件6,则会显示组件6的依赖关系,如图5中显示组件1、组件2、组件3和组件4。
[0071]通过以上技术方案,使得系统在集成后若由于运行环境发生改变出现依赖错误时,能够通过预编译过程及时检查出这些编译错,并将错误日志定向发送给相关开发人员,以便相关人员针对性的修改。
[0072]同时,可以定时自动执行,开发和测试人员不需再关心持续集成的过程,而只查看其结果,对于有问题的报告和日志,根据日志内容进行修改并再次执行。
[0073]拷贝和打包的路径是通过配置文件定义的,为多系统集成,制作安装盘提供了灵活的解决方案。
[0074]以上结合附图详细说明了本发明的技术方案,本发明提出了一种新的用于持续集成的自动化编译方案,实现了自动对构建单元内各组件之间的依赖关系进行分析构建,无需开发人员人工分析构建单元内各组件之间的依赖关系,降低了开发人员的工作负担,提闻了软件生广效率,进而确保了持续集成具有稳定、闻效、准确的优点。
[0075]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种用于持续集成的自动化编译方法,其特征在于,包括: 获取用于描述至少一个构建单元中每个构建单元内的每个组件与其他组件之间的依赖关系的配置文件; 解析所述配置文件,根据所述每个组件与其他组件之间的依赖关系生成所述每个构建单元的依赖关系集,并根据所述依赖关系集确定所述每个构建单元内的组件编译顺序; 根据所述每个构建单元的所述依赖关系集和每个构建单元内的组件编译顺序,对所述至少一个构建单元进行编译。
2.根据权利要求1所述 的用于持续集成的自动化编译方法,其特征在于,解析任一构建单元的所述配置文件的步骤具体为: 判断所述配置文件的格式是否为预定的标准格式; 若判定所述配置文件的格式为所述标准格式,则将所述任一构建单元中的所有组件的内容转化为数据对象,以进行加载; 若判断所述配置文件的格式不是所述标准格式,则读取所述配置文件中预定义的关键字和所述任一构建单元内的预编译包的层级依赖关系,根据所述任一构建单元内的预编译包的层级依赖关系确定所述任一构建单元内的所有组件,将所述任一构建单元中的所有组件的内容转化为数据对象,以进行加载。
3.根据权利要求1所述的用于持续集成的自动化编译方法,其特征在于,在对所述至少一个构建单元进行编译之前,还包括: 根据所述依赖关系集判断所述每个构建单元内是否存在不依赖于其他组件的基础组件; 若判定任一构建单元内存在所述基础组件,则执行所述编译的步骤; 若判定任一构建单元内不存在所述基础组件,则进行报错处理。
4.根据权利要求1所述的用于持续集成的自动化编译方法,其特征在于,对所述至少一个构建单元进行编译的步骤具体为: 根据所述每个构建单元的所述依赖关系集和每个构建单元内的组件编译顺序生成用于对所述至少一个构建单元进行编译的描述文件; 按照设定的执行时间,调取并执行所述描述文件。
5.根据权利要求1至4中任一项所述的用于持续集成的自动化编译方法,其特征在于,还包括: 根据所述每个构建单元的依赖关系集,以树形结构显示所述至少一个构建单元内的组件之间的依赖关系; 在接收到显示指定组件的依赖情况的指令时,显示所述指定组件依赖的其他组件。
6.一种用于持续集成的自动化编译装置,其特征在于,包括: 获取单元,获取用于描述至少一个构建单元中每个构建单元内的每个组件与其他组件之间的依赖关系的配置文件; 处理单元,用于解析所述配置文件,根据所述每个组件与其他组件之间的依赖关系生成所述每个构建单元的依赖关系集,并根据所述依赖关系集确定所述每个构建单元内的组件编译顺序; 编译单元,用于根据所述每个构建单元的所述依赖关系集和每个构建单元内的组件编译顺序,对所述至少一个构建单元进行编译。
7.根据权利要求6所述的用于持续集成的自动化编译装置,其特征在于,所述处理单元具体用于: 判断所述配置文件的格式是否为预定的标准格式,若判定所述配置文件的格式为所述标准格式,则将所述任一构建单元中的所有组件的内容转化为数据对象,以进行加载,以及 若判断所述配置文件的格式不是所述标准格式,则读取所述配置文件中预定义的关键字和所述任一构建单元内的预编译包的层级依赖关系,根据所述任一构建单元内的预编译包的层级依赖关系确定所述任一构建单元内的所有组件,将所述任一构建单元中的所有组件的内容转化为数据对象,以进行加载。
8.根据权利要求6所述的用于持续集成的自动化编译装置,其特征在于,还包括: 判断单元,用于根据所述依赖关系集判断所述每个构建单元内是否存在不依赖于其他组件的基础组件; 报错单元,用于在所述判断单元判定所述任一构建单元内不存在所述基础组件时,进行报错处理; 所述编译单元还用于,在所述判断单元判定任一构建单元内存在所述基础组件时,执行所述编译的操作。
9.根据权利要 求6所述的用于持续集成的自动化编译装置,其特征在于,所述编译单元包括: 生成单元,用于根据所述每个构建单元的所述依赖关系集和每个构建单元内的组件编译顺序生成用于对所述至少一个构建单元进行编译的描述文件; 执行单元,用于按照设定的执行时间,调取并执行所述描述文件。
10.根据权利要求6至9中任一项所述的用于持续集成的自动化编译装置,其特征在于,还包括: 显示单元,用于根据所述每个构建单元的依赖关系集,以树形结构显示所述至少一个构建单元内的组件之间的依赖关系,以及 在接收到显示指定组件的依赖情况的指令时,显示所述指定组件依赖的其他组件。
【文档编号】G06F9/44GK104077140SQ201410318900
【公开日】2014年10月1日 申请日期:2014年7月4日 优先权日:2014年7月4日
【发明者】刘建男 申请人:用友软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1