掌桥专利:专业的专利平台
掌桥专利
首页

一种生成补丁文件包的构造打包方法及系统

文献发布时间:2023-06-19 12:13:22


一种生成补丁文件包的构造打包方法及系统

技术领域

本发明涉及软件技术领域,尤其涉及一种生成补丁文件包的构造打包方法及系统。

背景技术

在软件产品的开发、运行阶段,当项目上发现一些问题时,通常以项目问题的形式提出来,项目问题可能涉及多个功能点,需要多名开发人员配合修改才能解决问题,但在多名开发人员各自修改各自负责的代码,并各自构造打包出补丁时,经常会出现漏文件、多文件、文件不是最新、文件放错位置等问题,导致在本部验证通过的问题,到客户现场依然没有解决问题的现象。

因此,本发明提出了一种生成补丁文件包的构造打包方法及系统,能够以项目问题为粒度,自动获取修改的工程、代码、脚本文件,并对这些工程及文件进行自动构造打包,以此避免漏文件、多文件、文件不是最新、文件放错位置等问题的出现,释放开发人员产能,提高开发人员工作效率。

发明内容

本发明提出了一种生成补丁文件包的构造打包方法及系统,解决了人工打包过程中出现的漏文件、多文件、文件不是最新、文件放错位置等问题,释放了开发人员产能,提高了开发人员工作效率。

基于上述目的,本发明实施例的一方面提供了一种生成补丁文件包的构造打包方法,包括以下步骤:

获取项目问题查询接口的接口标识,并根据所述接口标识生成项目问题列表以进行展示;

接收对所述项目问题列表中的项目问题的构建请求,将所述项目问题的项目问题号发送给项目问题关联活动查询接口进行查询,得到代码迁出活动列表;

获取所述代码迁出活动列表中的代码迁出活动,并根据所述代码迁出活动生成项目问题修改的文件列表;

将所述项目问题修改的文件列表发送给反查所属工程接口进行查询,生成所述项目问题修改的工程信息列表;

构造并打包所述工程信息列表中的构造打包单元,生成补丁文件包。

在一些实施方式中,所述获取项目问题查询接口的接口标识,并根据所述接口标识生成项目问题列表以进行展示,包括:

获取所述项目问题查询接口的接口标识,生成项目查询接口的实现类;

根据所述项目问题查询接口的实现类查询未关闭项目问题,生成项目问题列表并进行展示。

在一些实施方式中,所述项目问题查询接口包括按开发负责人查询未关闭项目问题或按客户查询未关闭项目问题。

在一些实施方式中,所述根据所述代码迁出活动生成项目问题修改的文件列表,包括:

根据所述代码迁出活动列表中的每一个代码迁出活动,调用代码迁出活动关联文件查询接口以查询关联文件,得到所述代码迁出活动修改的代码和脚本文件列表;

根据所述代码迁出活动修改的所述代码和脚本文件列表,生成所述项目问题修改的文件列表。

在一些实施方式中,所述构造并打包所述工程信息列表中的构造打包单元,生成补丁文件包,包括:

获取构造策略标识,生成构造策略标识的实现类;

将所述构造策略标识的实现类发送给构造策略接口,构造所述构造打包单元;

获取打包策略标识,生成打包策略标识的实现类;

将所述打包策略标识的实现类发送给打包策略接口,打包所述构造打包单元。

在一些实施方式中,获取构造策略标识,生成构造策略标识的实现类包括:获取构造策略标识,判断构造策略标识是否为空,并根据判断结果生成构造策略标识的实现类。

在一些实施方式中,所述将所述构造策略标识的实现类发送给构造策略接口,构造所述构造打包单元,包括:

将所述构造策略标识的实现类发送给所述构造策略接口,以使所述构造策略接口获取到所述构造打包单元的构造信息,并根据所述构造信息构造所述构造打包单元。

在一些实施方式中,获取打包策略标识,生成打包策略标识的实现类包括:获取打包策略标识,判断所述打包策略标识是否为空,并根据判断结果生成所述打包策略标识的实现类。

在一些实施方式中,将所述打包策略标识的实现类发送给打包策略接口,打包所述构造打包单元,包括:

将所述打包策略标识的实现类发送给所述打包策略接口,以使所述打包策略接口获取到所述构造打包单元的打包信息,并根据所述打包信息打包所述构造打包单元。

本发明实施例的另一方面,还提供了一种生成补丁文件包的构造打包系统,其特征在于,包括:

第一获取模块,配置为获取项目问题查询接口的接口标识,并根据所述接口标识生成项目问题列表以进行展示;

接收模块,配置为接收对所述项目问题列表中的项目问题的构建请求,将所述项目问题的项目问题号发送给项目问题关联活动查询接口进行查询,得到代码迁出活动列表;

第二获取模块,配置为获取所述代码迁出活动列表中的代码迁出活动,并根据所述代码迁出活动生成项目问题修改的文件列表;

发送模块,配置为将所述项目问题修改的文件列表发送给反查所属工程接口进行查询,生成所述项目问题修改的工程信息列表;

构造打包模块,配置为构造并打包所述工程信息列表中的构造打包单元,生成补丁文件包。

本发明具有以下有益技术效果:通过一种生成补丁文件包的构造打包方法及系统,自动获取修改的工程、代码、脚本文件,并对这些工程及文件进行自动构造打包,解决了人工打包过程中出现的漏文件、多文件、文件不是最新、文件放错位置等问题,释放了开发人员产能,提高了开发人员工作效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。

图1为本发明的实施例提供的补丁文件包的构造打包方法的框图;

图2为本发明的实施例提供的补丁文件包的构造打包系统的示意图;

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。

需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。

基于上述目的,本发明实施例的第一个方面,提出了一种生成补丁文件包的构造打包方法的实施例。如图1所示,其包括如下步骤:

S1、获取项目问题查询接口的接口标识,并根据所述接口标识生成项目问题列表以进行展示;

S2、接收对所述项目问题列表中的项目问题的构建请求,将所述项目问题的项目问题号发送给项目问题关联活动查询接口进行查询,得到代码迁出活动列表;

S3、获取所述代码迁出活动列表中的代码迁出活动,并根据所述代码迁出活动生成项目问题修改的文件列表;

S4、将所述项目问题修改的文件列表发送给反查所属工程接口进行查询,生成所述项目问题修改的工程信息列表;

S5、构造并打包所述工程信息列表中的构造打包单元,生成补丁文件包。

根据本发明的一些实施例,获取项目问题查询接口的接口标识前,需要预先设置好接口标准,以便系统在软件开发、运行、维护等过程中使用。

例如,预先设置好的接口标准包括:

项目问题查询接口,配置为按开发负责人、按问题号、按状态、按客户等查询项目问题。项目问题查询接口包括属性:项目问题编号、问题描述、状态、开发负责人、客户和创建时间。其中,项目问题编号用于唯一标识一个项目问题,作为后续构造打包的基础依据;问题描述用于描述项目具体问题的详情描述;状态用于标记问题所处的阶段,包括待处理、已承诺、开发完成、测试完成、关闭;开发负责人用于记录处理该问题的开发负责人,可基于开发负责人查询问题,系统默认只显示当前开发负责人自己的问题;客户用于记录本问题是哪个客户的项目问题;创建时间用于记录本问题的创建时间。项目问题查询接口还包括可执行的操作:按开发负责人查询未关闭项目问题、按客户查询未关闭项目问题。其中,按开发负责人查询未关闭项目问题配置为根据开发负责人查询本人负责的未关闭项目问题,它包含一个“开发负责人”参数,返回一个项目问题类对象的列表,即本人负责的未关闭的项目问题列表;按客户查询未关闭项目问题配置为根据客户查询该客户相关的未关闭项目问题,它包含一个“客户”参数,返回一个项目问题类对象的列表,即本客户相关的未关闭的项目问题列表。

项目问题关联活动查询接口,用于按照项目问题号查询与该项目问题相关联的代码修改活动。项目问题关联活动查询接口包括属性:迁出活动编号、描述和状态。其中,代码迁出活动编号用于唯一标识代码迁出活动,作为检索该活动涉及修改的代码文件、脚本文件的依据;描述用于简要描述代码迁出活动的目的、内容等;项目问题号用于标记该代码迁出活动,是关于那个问题的;状态用于活动的阶段,包括迁出、迁入;项目问题关联活动查询接口还包括可执行的操作:查询代码迁出活动。查询代码迁出活动配置为根据项目问题号查询该项目问题所关联的代码迁出活动,它包含一个“项目问题号”参数,返回一个代码迁出活动类对象的列表,即与项目问题有关的代码迁出活动列表。

代码迁出活动关联文件查询接口,用于代码迁出活动查询与该活动关联的源代码文件、脚本文件。查询一般由源代码管理软件承担,不同的源代码管理软件其实现不同。代码迁出活动关联文件查询接口包括可执行的操作:查询关联文件,查询关联文件配置为根据活动编码号查询该活动所关联的代码、脚本文件列表,它包含一个“活动号”参数,返回修改过的代码、脚本文件列表。

反查所属工程接口,用于文件向上查找该文件所属工程,包含工程的工程标识等信息。反查所属工程接口包括可执行的操作:查询,查询配置为根据代码、脚本文件列表查询其所属工程,它包含一个“代码、脚本文件列表”参数,这些代码、脚本文件所属的工程,可能是会返回一个工程标识、也可能会返回多个工程标识。

工程类型配置,用于定义构造打包单元的源代码工程的工程类型,不同的工程类型对应的构造策略及打包策略不同。工程类型配置包含四个属性,分别为工程类型标识、工程类型编码、工程类型名称和描述。其中,工程类型标识用于唯一标识一个工程类型,用于构造打包单元接口中工程类型的识别;工程类型编码,用于工程类型的编码;工程类型名称,用于描述工程类型的名称;备注,用于简单描述该工程类型的用途及特征。

构造打包单元接口,用于定义构造打包最小单元源代码工程时的需要实现的标准接口。构造打包单元接口包含属性:标识、产品标识、关键应用标识、服务单元标识、工程标识、是否启用构造、构造策略标识、是否启用打包、打包策略标识和源码位置。其中,标识用于唯一标识一个构造打包单元,用于在构造和打包时对基础工程构造单元的识别;产品标识用于标识一个大型软件产品,当存在多产品线时,用于区分不同构造打包单元所属的软件产品;关键应用标识用于指定构造单元所属的领域,大型软件产品分多个领域,该属性用于记录基本构造单元所属的应用领域;服务单元标识用于指定构造单元所属的模块,大型软件产品一般分多个应用领域,每个应用领域分多个模块,该属性用于标识构造单元所属的模块;工程标识用于指定构造打包单元对应的工程;工程类型标识用于指定构造单元所对应的软件工程的工程类型,不同的工程类型对应的构造策略和打包策略不同;是否启用构造用于构造打包单元是否要需要构造,这个属性被用于进行本构造打包单元构造前的一个前置条件;是否启用打包用于本构造打包单元是否需要打包,这个属性被用于进行本构造打包单元打包前的一个前置条件;构造策略标识用于指定构造打包单元的构造策略的标识;构造打包单元的构造方式可以有多种实现,在具体构造打包单元上可以提供对保存策略的设定,当进行构造打包单元的构造时,如果该策略标识不为空,可按照指定的策略构造对应的工程;打包策略标识用于指定构造打包单元的打包策略的标识,构造打包单元的打包方式可以有多种实现,在具体构造打包单元上可以提供对打包策略的设定,当进行构造打包单元的打包时,如果该打包标识不为空,可按照指定的策略打包相应的构造打包单元;源代码位置用于指定构造打包单元所对应的源代码仓库的位置,以工程为粒度建立源代码仓库,用于指定本工程所对应的构造打包单元的源代码位置。构造打包单元接口包含两个可执行的操作:获取构造上下文、获取打包上下文。获取构造上下文,当系统要构造源代码工程时,通过该操作获取本构造打包单元的构造信息,它包含一个“构造上下文”类型返回值;获取打包上下文,当系统要打包工程生成的构造打包单元时,通过该操作获取本构造打包单元的打包信息,它包含一个“打包上下文”类型的返回值。

构造上下文,用于记录构造打包单元构造打包的构造信息。构造上下文包含三个属性,分别为:源代码位置、源码仓库认证凭据、构造策略标识。源代码位置用于指定构造打包单元所对应的源代码仓库的位置,以业务对象为粒度建立源代码仓库,用于指定本业务对象所对应的构造打包单元的源代码位置;源码仓库认证凭据用于指定获取源代码时需要提供的认证凭据,构建前需要先从源代码仓库获取源代码,获取源代码一般需要一定的认证凭据,用于提供对应的认证凭据;构造策略标识用于指定构造打包单元的构造策略的标识,构造打包单元的构造方式可以有多种实现,在具体构造打包单元上可以提供对保存策略的设定,当进行构造打包单元的构造时,如果该策略标识不为空,可按照指定的策略构造对应的工程。

打包上下文,用于记录构造打包单元构造打包的打包信息。打包上下文包含三个属性,分别为:源代码位置、源码仓库认证凭据、构造策略标识。打包认证凭据用于指定获取打包构造打包单元时需要提供的认证凭据,打包前需要先链接对应的环境,链接环境一般需要一定的认证凭据,该属性用于提供对应的认证凭据;打包策略标识用于指定构造打包单元的打包策略的标识,构造打包单元的打包方式可以有多种实现,在具体构造打包单元上可以提供对打包策略的设定,当进行构造打包单元的打包时,如果该策略标识不为空,可按照指定的策略打包响应的构造打包单元。

构造策略接口,用于构造打包单元构造时,执行单元的构造。构造策略接口包含一个构造操作。构造根据输入的构造上下文信息,对构造打包单元进行构造,包含一个“构造上下文”参数,无返回值。

打包策略接口,用于构造打包单元打包时,对单元执行打包。打包策略接口包含一个打包操作。打包根据输入的打包上下文信息,对构造操作构造出来的构造打包单元执行打包操作,它包含一个“打包上下文”参数,无返回值。

接口实现配置,用于记录各接口的实现类集合。接口实现配置包含属性:标识、接口标识、工程类型标识、实现类、是否缺省。其中,标识用于唯一标识一个接口实现配置;接口类标识用于唯一标识一个接口,一般用接口的全名标记;工程类型标识用于指定构造单元所对应的软件工程的工程类型,不同的工程类型对应的构造策略和打包策略不同;实现类用于描述接口实现类的相关信息,比如描述实现类的全名;是否缺省用于标记特定工程类型的缺省接口实现类,一种工程类型一种接口可能有多种实现,该属性用于指定缺省的实现;接口实现配置还包含可执行的操作:获取默认实现、获取全部实现。获取默认的实现配置为获取指定工程类型的默认接口实现配置,其中,实现类的配置,是一个字符串,用于描述实现类程序加载所需的具体信息,如果没有查找到,则返回一个空字符串;获取指定实现配置为获取指定标识的接口实现类的配置,其中,实现类的配置,是一个字符串,用于描述实现类程序加载所需的具体信息。

本实施例划分为两个阶段,分别为:开发阶段、运行阶段。以一个元数据类的销售订单构造打包单元的构造打包为例。

运行阶段预制了“项目问题查询接口”的接口标识IQueryProjProblem,其实现类为DefaultQueryProjProblemImpl的接口实现配置,其对应的接口实现配置见表1。

表1

运行阶段还预制了“项目问题关联活动查询接口”的接口标识IQuery-ProjProblemActivity,及其实现类DefaultQueryProjProblemActivityImpl,其对应的接口实现配置见表2。

表2

运行阶段还预制了“代码迁出活动关联文件查询接口”的接口标识IQueryActivityFiles,及其实现类DefaultQueryActivityFilesImpl,其对应的接口实现配置见表3。

表3

运行阶段还预制了“反查所属工程接口”的接口标识IQueryOwnedProject,及其实现类DefaultQueryOwnedProjectImpl,其对应的接口实现配置见表4。

表4

在开发阶段,预制了一种工程类型,详见表5。

表5

开发阶段还预制了一种“构造策略配置”的接口标识IBuildStrategy(Maven原生工程构造策略),该策略实现对MAVEN原生工程类型的工程的构建的支持,其对应的接口实现配置见表6。

表6

开发阶段还预制了一种“打包策略配置”的接口标识IAssemblyStrategy,该策略实现了对Maven原生类型的工程的打包的支持,其对应的接口实现配置见表7。

表7

根据本发明的若干实施例,所述获取项目问题查询接口的接口标识,并根据所述接口标识生成项目问题列表以进行展示,包括:获取所述项目问题查询接口的接口标识,生成项目查询接口的实现类;根据所述项目问题查询接口的实现类查询未关闭项目问题,生成项目问题列表并进行展示。

在一些实施方式中,所述项目问题查询接口包括按开发负责人查询未关闭项目问题或按客户查询未关闭项目问题。

假设当前用户为开发负责人,该用户进入构造打包系统后,输入项目问题查询接口的接口标识IQueryProjProblem,系统根据输入的项目问题查询接口的接口标识调用接口实现配置的“获取默认实现”操作,得到项目问题查询接口的默认实现类DefaultQueryProjProblemImpl,根据项目问题查询接口的实现类,调用该类的“按开发负责人查询未关闭项目问题”的操作,生成项目问题列表。

根据一些实施例,根据项目问题号,调用项目问题关联活动查询接口IQueryProjProblemActivity的“查询代码迁出活动”操作,得到代码迁出活动列表。

根据本发明的若干实施例,所述根据所述代码迁出活动生成项目问题修改的文件列表,包括:根据所述代码迁出活动列表中的每一个代码迁出活动,调用代码迁出活动关联文件查询接口以查询关联文件,得到所述代码迁出活动修改的代码和脚本文件列表;根据所述代码迁出活动修改的所述代码和脚本文件列表,生成所述项目问题修改的文件列表。

针对代码迁出活动列表中每一个代码迁出活动,调用代码迁出活动关联文件查询接口IQueryActivityFiles的“查询关联文件”操作,得到代码迁出活动修改的代码、脚本文件列表(n

将项目问题修改的文件列表发送给反查所属工程接口IQueryOwnedProject,使反查所属工程接口查询项目问题修改的文件列表中的文件的所属工程信息,生成项目问题修改的所有工程信息列表projectList;

针对工程信息列表中的每一个工程,即构造打包单元,进行构造和打包。

根据本发明的若干实施例,所述构造并打包所述工程信息列表中的构造打包单元,生成补丁文件包,包括:获取构造策略标识,生成构造策略标识的实现类;将所述构造策略标识的实现类发送给构造策略接口,构造所述构造打包单元;获取打包策略标识,生成打包策略标识的实现类;将所述打包策略标识的实现类发送给打包策略接口,打包所述构造打包单元。

在一些实施方式中,获取构造策略标识,生成构造策略标识的实现类包括:获取构造策略标识,判断构造策略标识是否为空,并根据判断结果生成构造策略标识的实现类。

首先根据构造打包单元对应的构造打包单元接口,获取是否启用构造来判断是否构造打包单元进行构造。如果构造,则获取构造打包单元接口的构造策略标识。判断构造策略标识是否为空,如果构造策略标识不为空,则发送构造策略标识MavenBuildStrategy给接口实现配置的获取指定实现,生成构造策略标识的实现类的具体配置信息,如果构造策略标识为空,则调用接口实现配置的获取默认实现生成构造策略标识的实现类的默认配置信息MavenBuildStrategyImpl。

根据本发明的若干实施例,所述将所述构造策略标识的实现类发送给构造策略接口,构造所述构造打包单元,包括:将所述构造策略标识的实现类发送给所述构造策略接口,以使所述构造策略接口获取到所述构造打包单元的构造信息,并根据所述构造信息构造所述构造打包单元。

在获取到构造策略标识的实现类后,将构造策略标识的实现类发送给构造策略接口,以使所述构造策略接口通过调用构造打包单元接口的“获取构造上下文”操作,获取到所述构造打包单元的构造信息,并根据所述构造信息对构造打包单元进行构造。

根据本发明的若干实施例,获取打包策略标识,生成打包策略标识的实现类包括:获取打包策略标识,判断所述打包策略标识是否为空,并根据判断结果生成所述打包策略标识的实现类。

接着根据构造打包单元实现的构造打包单元接口,获取是否启用打包来判断是否打包构造打包单元。如果打包,则获取构造打包单元接口的打包策略标识MavenAssemblyStrategy。判断打包策略标识是否为空,如果打包策略标识不为空,则发送打包策略标识给接口实现配置的获取指定实现,生成打包策略标识的实现类的具体配置信息,如果打包策略标识为空,则调用接口实现配置的获取默认实现生成打包策略标识的实现类的默认配置信息MavenAssemblyStrategyImpl。

根据本发明的若干实施例,将所述打包策略标识的实现类发送给打包策略接口,打包所述构造打包单元,包括:将所述打包策略标识的实现类发送给所述打包策略接口,以使所述打包策略接口获取到所述构造打包单元的打包信息,并根据所述打包信息打包所述构造打包单元。

在获取到打包策略标识的实现类后,将打包策略标识的实现类发送给打包策略接口,以使所述打包策略接口通过调用构造打包单元接口的“获取打包上下文”操作,获取到所述构造打包单元的打包信息,并根据所述打包信息对构造打包单元进行打包。

继续迭代其它工程,直至所有工程均完成了构造、打包操作,将打包结果合并生成针对项目问题的补丁文件包。

基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种生成补丁文件包的构造打包系统,如图2所示,包括:

第一获取模块110,配置为获取项目问题查询接口的接口标识,并根据所述接口标识生成项目问题列表以进行展示;

接收模块120,配置为接收对所述项目问题列表中的项目问题的构建请求,将所述项目问题的项目问题号发送给项目问题关联活动查询接口进行查询,得到代码迁出活动列表;

第二获取模块130,配置为获取所述代码迁出活动列表中的代码迁出活动,并根据所述代码迁出活动生成项目问题修改的文件列表;

发送模块140,配置为将所述项目问题修改的文件列表发送给反查所属工程接口进行查询,生成所述项目问题修改的工程信息列表;

构造打包模块150,配置为构造并打包所述工程信息列表中的构造打包单元,生成补丁文件包。

以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。

应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。

上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

相关技术
  • 一种生成补丁文件包的构造打包方法及系统
  • 基于文件夹的补丁升级包生成及差分升级方法和装置
技术分类

06120113213063