发明内容
本发明所要解决的技术问题是需要提供一种软件的生成系统和方法,克服现有技术中软件多个版本之间不便管理维护的缺陷。
为了解决上述技术问题,本发明提供了一种软件的生成系统,包括:
选择模块,用于通过图形配置界面选择对应于所述软件的功能模块,并将选择结果记录到一记录文件中;
判断模块,用于根据所述记录文件以及源码文件判断所选的功能模块所对应的目标源码或目标配置是否进行了更改,
编译模块,用于所述判断模块判断出所选的功能模块所对应的目标源码或目标配置进行了更改,则对所述目标源码进行编译,将编译结果存储到一临时系统目录中;
提取模块,用于所述判断模块判断出所选的功能模块所对应的目标源码或目标配置未进行更改,则提取出与所述功能模块相应的编译结果并存储到所述临时系统目录中;
拷贝模块,用于将基础系统文件拷贝到所述临时系统目录中;
发布模块,用于发布所述临时系统目录中的编译结果和基础系统文件,生成所述软件。
优选地,该系统进一步包括:
存储模块,用于发布所述临时系统目录中的编译结果和基础系统文件之前,将所述记录文件存储到所述临时系统目录中。
优选地,该系统进一步包括:
记录模块,用于结合所述记录文件记录所述软件所拥有的功能及其功能代码的版本号。
优选地,所述记录模块进一步用于结合所述记录文件记录所述软件的内核和内核驱动的区别号。
为了解决上述技术问题,本发明还提供了一种软件的生成方法,包括:
通过图形配置界面选择对应于所述软件的功能模块,并将选择结果记录到一记录文件中;
根据所述记录文件以及源码文件判断所选的功能模块所对应的目标源码或目标配置是否进行了更改,
若进行了更改则对所述目标源码进行编译,将编译结果存储到一临时系统目录中;若未进行更改则提取出与所述功能模块相应的编译结果并存储到所述临时系统目录中;
将基础系统文件拷贝到所述临时系统目录中;
发布所述临时系统目录中的编译结果和基础系统文件,生成所述软件。
优选地,发布所述临时系统目录中的编译结果和基础系统文件之前,进一步将所述记录文件存储到所述临时系统目录中。
优选地,所述图形配置界面包括功能选择接口和功能记录接口,其中所述功能选择接口用以提供功能模块的选择功能,所述功能记录接口用于将选择的功能模块记录到所述记录文件。
优选地,结合所述记录文件记录所述软件所拥有的功能及其功能代码的版本号。
优选地,结合所述记录文件进一步记录所述软件的内核和内核驱动的区别号。
优选地,所述记录文件中所记录的功能模块所对应的是新增的功能代码,则对所述目标源码进行重新编译。
与现有技术相比,本发明的技术方案有效地平衡了用户的需求和软件的多版本管理难度,在不加大软件管理维护难度的前提下可以适应更广大用户的需求。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。
首先,如果不冲突,本发明实施例以及实施例中的各个特征的相互结合,均在本发明的保护范围之内。另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
实施例一、一种软件的生成系统
如图1所示,本实施例主要包括选择模块110、判断模块120、编译模块130、提取模块140、拷贝模块150以及发布模块160,其中:
选择模块110,用于通过图形配置界面选择对应于该软件的功能模块,并将选择结果记录到一记录文件中;
判断模块120,与选择模块110相连,用于根据该记录文件以及源码文件判断所选的功能模块所对应的目标源码或目标配置是否进行了更改,
编译模块130,与判断模块120相连,用于该判断模块120判断出所选的功能模块所对应的目标源码或目标配置进行了更改,则对该目标源码进行编译,将编译结果存储到一临时系统目录中;
提取模块140,与判断模块120相连,用于该判断模块120判断出所选的功能模块所对应的目标源码或目标配置未进行更改,则提取出与该功能模块相应的编译结果并存储到该临时系统目录中;
拷贝模块150,与编译模块130及提取模块140相连,用于将基础系统文件拷贝到该临时系统目录中;
发布模块160,与拷贝模块150相连,用于发布该临时系统目录中的编译结果和基础系统文件,生成该软件。
本实施例的上述系统,还可以进一步包括存储模块170,其与选择模块110相连,用于发布该临时系统目录中的编译结果和基础系统文件之前,将该记录文件存储到该临时系统目录中。
本实施例的上述系统,还可以进一步包括记录模块180,其与选择模块110及发布模块160相连,用于结合该记录文件记录该软件所拥有的功能及其功能代码的版本号。该记录模块180还可以进一步用于结合该记录文件记录该软件的内核和内核驱动的区别号。
需要说明的是,本实施例虽然是以系统软件的生成来进行说明的,但本发明的技术方案并不限于生成系统软件,应该理解为同样适用于生成系统软件之外的其他各种软件,比如应用软件、管理软件等等。
实施例二、一种软件的生成方法
本实施例应用于系统软件的发布过程。需要说明的是,本实施例虽然也是以系统软件的生成来进行说明的,但本发明的技术方案也不限于生成系统软件,应该理解为同样适用于生成系统软件之外的其他各种软件,比如应用软件、管理软件等等。
如图2所示,本实施例主要包括如下步骤:
步骤S210,通过图形配置界面,管理员选择所要生成的系统软件的功能模块,并将选择结果记录到一记录文件中;
管理员通过该图形配置界面,能够查看用于发布各版本系统软件的所有功能模块;
步骤S220,根据记录文件以及源码文件,判断所选的功能模块所对应的目标源码或目标配置是否进行了更改(不同版本的系统所需要的功能模块的源码版本可能不一样,或者有些会针对某一系统打特定的补丁等),若进行了更改则转步骤S230,否则(未进行更改)转步骤S240;
步骤S230,对该目标源码进行编译,将编译后得到的编译结果存储到一临时系统目录中,转步骤S250;
在本实施例中,若记录文件中所记录的功能模块所对应的是新增的功能代码,则需要进行目标源码的重新编译;
步骤S240,提取出与功能模块相应的编译结果并存储到一临时系统目录中,转步骤S250;
步骤S250,将基础系统文件拷贝到该临时系统目录中;
步骤S260,将记录文件存储到该临时系统目录中,以方便生成后的系统软件查看和管理所添加的这些功能模块;
步骤S270,发布该临时系统目录中的该编译结果和基础系统文件,生成系统软件。
上述步骤S210中,根据用户的需求,可以在图形配置界面上调用各功能模块的显示接口,来查看功能模块的版本信息、依赖库、依赖关系以及简单的功能描述等。图形配置界面包括一功能选择接口和一功能记录接口,其中该功能选择接口用以向管理员提供功能模块的选择功能,该功能记录接口用于将管理员选择的功能模块记录到记录文件中,包括记录其名称和版本信息,以及功能模块的依赖库等。
上述步骤S220中,对比记录文件和源码文件,获取到哪些功能模块所对应的功能代码可以直接提取,哪些功能代码需要重新进行编译。
对需要重新进行编译的功能代码,将编译完成的编译结果存放到临时系统目录中,并在源码文件中改变编译结果的编译状态,以免下个系统需要这个功能代码时,再重新编译该编译结果,造成时间上的浪费。
若在功能记录文件中有该软件,但是功能存储模块中没有该软件(比如可能是新加入的工具程序,其存放源码并在功能记录文件中添加记录,但是还没有进行编译,所以并没有之前编译生成的软件;又比如也可能是该软件在功能存储模块中被删除),则需要调用功能代码重编译接口进行源码的重编译,再将编译完成的软件存放到功能存储模块中。
当功能模块的配置文件被修改后,也需要将配置文件存放到该功能模块的相应目录中。
上述步骤S230中,当新增加功能代码时,需要通过添加功能代码接口来添加该新增的功能代码的名称、版本、依赖关系以及状态等信息,然后功能模块的显示接口将其在图形界面上显示出来,并标识为“新增”。当管理员选择该新增加的功能代码对应的功能模块后,则会进行源码的重新编译,然后将编译完成的编译结果存放到临时系统目录中,并在源码文件中更改该新增加的功能代码的编译状态。
上述步骤S250中,在一般的状态下,系统内核等是不需要更改的,但是也不排除需要更改的可能。因此,若需要更改系统内核参数或者修改系统内核选项时,则需要重新编译内核。这样,就可能出现多个内核导致混乱的问题,本发明按各个内核应用的场景进行分类,详细记录内核之间的区别;重新编译系统内核后,则相应的内核驱动也将重编译,并按内核划分的规则来进行划分。
上述步骤S260中,结合记录文件来记录生成的系统软件所拥有的功能和其功能代码的版本号。另外,还可以记录内核和内核驱动的区别号,以此来记录一个完整的系统软件各模块的版本信息。
按照本发明技术方案,虽然会产生出各式各样的系统,但是主线只有一条,维护人员只需要去维护这一条主线即可。当客户的系统出现故障时,只需将客户的系统中的记录文件获取到,就可以容易就会重做一个与故障之前一模一样的系统出来,方便问题的复现与修改。本发明技术方案从根本上杜绝了软件多版本、多分支后带来的管理、开发、维护以及技术支持等难题,无需大量的维护人员和维护成本即可轻松地完成维护工作,节约了维护成本,同时也降低了维护难度。同时,在对本发明技术方案生成的系统软件进行多版本的管理时,各版本的版本信息以及相应的补丁的版本信息,均可以方便地查看以及加载或者卸载。
本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。