一种应用程序的组件管理方法、装置及计算机设备
文献发布时间:2023-06-19 11:45:49
技术领域
本发明涉及计算机技术领域,具体涉及一种应用程序的组件管理方法、装置及计算机设备。
背景技术
在软件开发过程中,随着时间的推移,软件功能越来越复杂,代码会变的越来越多,考虑到易于维护、降低耦合度的设计原则,产生了组件化的概念。组件化的概念目前已经被广泛应用于应用程序的开发中,但是当组件变得越来越多、开发团队规模越来越大时,简单的组件化已经无法满足日常开发了,例如,当想要了解某个组件由谁负责开发的、组件的代码地址指的是什么、应用程序和组件的依赖关系是什么等,单凭人脑记忆和项目中的代码结构是无法确定的。故亟待提出一种应用程序的组件管理方法来实现组件、组件之间的依赖关系以及组件和应用程序之间的依赖关系的管理。
发明内容
因此,本发明要解决的技术问题在于克服现有技术中当组件数量较大时,简单的组件化无法满足开发需求的缺陷,从而提供一种应用程序的组件管理方法、装置及计算机设备。
根据第一方面,本发明公开了一种应用程序的组件管理方法,包括如下步骤:接收组件管理客户端发送的组件信息操作请求,所述组件信息操作请求中携带有标识信息;根据所述标识信息和组件依赖关系执行所述组件信息操作请求对应的操作;根据操作结果向所述组件管理客户端发送操作反馈信息。
本发明通过组件管理服务端存储的组件依赖信息对组件信息进行中心化管理,每一个组件管理客户端都使用同一份组件数据,降低了组件管理客户端的数据差异,同时根据组件管理客户端的组件信息操作请求实现组件信息以及组件依赖关系的管理,满足组件数据量大时的开发需求。
可选地,所述组件信息操作请求包括:应用程序与组件的依赖关系添加请求,所述标识信息包括:目标应用程序的标识信息和目标组件的标识信息,所述根据所述标识信息和组件依赖关系执行所述组件信息操作请求对应的操作包括:根据所述目标应用程序的标识信息、目标组件的标识信息以及所述组件依赖关系确定所述目标应用程序与所述目标组件是否存在直接依赖关系;当所述目标应用程序与所述目标组件不存在直接依赖关系时,将所述目标应用程序与所述目标组件进行关联。
可选地,所述当所述目标应用程序与所述目标组件不存在直接依赖关系时,将所述目标应用程序与所述目标组件进行关联,包括:当所述目标应用程序与所述目标组件不存在直接依赖关系时,确定所述应用程序与组件的依赖关系添加请求中是否携带有所述目标组件的组件版本号;当所述应用程序与组件的依赖关系添加请求中携带有所述目标组件的组件版本号时,将所述目标应用程序与所述目标组件的所述组件版本号进行关联。
可选地,当所述应用程序与组件的依赖关系添加请求中未携带有所述目标组件的组件版本号时,将所述目标应用程序与所述目标组件的第一预设组件版本号进行关联。
可选地,所述组件信息操作请求包括:应用程序的组件依赖关系查询请求,所述标识信息包括:目标应用程序的标识信息,所述根据所述标识信息和组件依赖关系执行所述组件信息操作请求对应的操作,包括:根据所述目标应用程序的标识信息与所述组件依赖关系确定所述目标应用程序是否存在直接依赖组件;当所述目标应用程序存在直接依赖组件时,将所述直接依赖组件的组件信息确定为查询结果。
可选地,所述当所述目标应用程序存在直接依赖组件时,将所述直接依赖组件的组件信息确定为查询结果,包括:当所述目标应用程序存在直接依赖组件时,根据所述组件依赖关系确定所述直接依赖组件是否存在依赖组件;当所述直接依赖组件存在依赖组件时,将所述直接依赖组件的组件信息以及所述直接依赖组件的依赖组件一起确定为查询结果。
可选地,所述组件信息操作请求包括:组件版本号指定请求,所述标识信息为目标组件的标识信息,所述根据所述标识信息和组件依赖关系执行所述组件信息操作请求对应的操作,包括:从所述组件版本号指定请求中获取第二预设版本号;根据所述目标组件的标识信息将所述目标组件的目标组件版本号设置为所述第二预设版本号,以使得所述组件管理客户端在所述目标组件的组件版本号更新时使用所述目标组件的第二预设版本号。
根据第二方面,本发明还公开了一种应用程序的组件管理方法,包括如下步骤:响应于用户的操作信息,向组件管理服务端发送组件信息操作请求;接收所述组件管理服务端根据所述组件操作请求和组件依赖关系执行所述组件信息操作请求对应的操作后发送的操作反馈信息。
本发明通过组件管理服务端存储的组件依赖信息对组件信息进行中心化管理,每一个组件管理客户端都使用同一份组件数据,降低了组件管理客户端的数据差异,同时组件管理客户端向自己管理服务端发送组件信息操作请求以实现组件信息以及组件依赖关系的管理,满足组件数据量大时的开发需求。
可选地,所述组件信息操作请求包括:组件查询请求,在所述接收所述组件管理服务端的反馈信息之后,所述方法还包括:获取组件信息列表;遍历所述组件信息列表;根据所述组件信息列表中的每一个组件的组件依赖关系以及组件信息生成多个目标文件。
本发明通过组件管理客户端的研发脚本统一生成组件的配置文件,为研发人员提供了标准的组件使用规范,避免了开发人员使用规范不统一导致出现问题不易排查的问题。
根据第三方面,本发明还公开了一种应用程序的组件管理装置,包括:第一接收模块,用于接收组件管理客户端发送的组件信息操作请求,所述组件信息操作请求中携带有标识信息;执行模块,用于根据所述标识信息和组件依赖关系执行所述组件信息操作请求对应的操作;第一发送模块,用于根据操作结果向所述组件管理客户端发送操作反馈信息。
根据第四方面,本发明还公开了一种应用程序的组件管理装置,包括:第二发送模块,用于响应于用户的操作信息,向组件管理服务端发送组件信息操作请求;第二接收模块,用于接收所述组件管理服务端根据所述组件操作请求和组件依赖关系执行所述组件信息操作请求对应的操作后发送的操作反馈信息。
根据第五方面,本发明还公开了一种计算机设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行如第一方面或第一方面任一可选实施方式所述的应用程序的组件管理方法的步骤或如第二方面或第二方面任一可选实施方式所述的应用程序的组件管理方法的步骤。
根据第六方面,本发明还公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面或第一方面任一可选实施方式所述的应用程序的组件管理方法的步骤或如第二方面或第二方面任一可选实施方式所述的应用程序的组件管理方法的步骤。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中应用程序的组件管理系统的一个具体示例图;
图2为本发明实施例中应用程序的组件管理方法的一个具体示例的流程图;
图3为本发明实施例中应用程序的组件管理方法的另一个具体示例的流程图;
图4为本发明实施例中应用程序的组件管理方法的又一个具体示例的流程图;
图5为本发明实施例中应用程序的组件管理装置的一个具体示例的原理框图;
图6为本发明实施例中应用程序的组件管理装置的另一个具体示例的原理框图;
图7为本发明实施例中计算机设备的一个具体示例图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,还可以是两个元件内部的连通,可以是无线连接,也可以是有线连接。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
如图1所示,应用程序的组件管理系统包括互相连接的组件管理客户端11和组件管理服务端12,其中,组件管理服务端12存储有多个组件的组件信息、组件之前的依赖关系以及应用程序与组件的依赖关系,便于组件管理客户端11查询组件信息、组件之间的依赖关系和应用程序与组件之间的依赖关系,创建组件,添加应用程序与组件的依赖关系等。组件管理客户端11为研发者的终端,为研发者提供人机交互界面以及开发环境等。本领域技术人员可以知晓,该组件管理系统还可以包括:组件性能监控系统、版本管理系统和文件打包系统等。
因此,本发明实施例公开了一种应用程序的组件管理方法,应用于组件管理服务端,如图2所示,包括如下步骤:
S21:接收组件管理客户端发送的组件信息操作请求,组件信息操作请求中携带有标识信息。
示例性地,该组件信息操作请求可以包括:组件创建请求、组件信息修改/删除请求、应用程序与组件的依赖关系删除/添加请求等。本发明实施例对该组件信息操作请求不作具体限定,本领域技术人员可以根据实际需求确定。标识信息可以包括:组件的标识信息和应用程序的标识信息。标识信息可以为组件名称或应用程序名称,也可以为提前预设好的编号信息。本发明实施例对该标识信息也不作具体限定,本领域技术人员也可以根据实际情况确定。
组件管理客户端可以与组件管理服务端直接连接,也可以与组件管理服务端通信连接。相对应的,组件信息操作请求可以是组件管理客户端通过有线网络或者无线网络的发送的。
S22:根据标识信息和组件依赖关系执行组件信息操作请求对应的操作。
示例性地,该组件依赖关系可以包括:组件与组件之间的依赖关系和应用程序与组件之间的依赖关系。本发明实施例对该组件依赖关系不作具体限定,本领域技术人员可以根据实际情况确定。其中,一个应用程序可以依赖一个或者多个组件,该依赖关系是单向的,组件不能依赖应用程序;一个组件也可以依赖一个组件或者多个组件,但是两个组件不能相互依赖。
根据标识信息和组件依赖关系执行组件信息操作请求对应的操作具体可以根据组件信息操作请求确定,例如,当组件信息操作请求为应用程序与组件依赖关系查询请求时,组件管理服务端根据应用程序的标识信息和组件依赖关系查询该应用程序所依赖的组件。
S23:根据操作结果向组件管理客户端发送操作反馈信息。
示例性地,该反馈信息可以包括:存储成功、修改成功、查询结果等。本发明实施例对该反馈信息不作具体限定,本领域技术人员可以根据实际组件信息操作请求确定。
该操作反馈信息的发送方法可以为组件管理服务端通过有线网络或者无线网络的方法发送的。
本发明实施例通过组件管理服务端存储的组件依赖信息对组件信息进行中心化管理,每一个组件管理客户端都使用同一份组件数据,降低了组件管理客户端的数据差异,同时根据组件管理客户端的组件信息操作请求实现组件信息以及组件依赖关系的管理,满足组件数据量大时的开发需求。
作为本发明实施例一个可选实施方式,当组件信息操作请求为组件创建请求时,该组件创建请求可以携带有:待创建组件的名称、创建人、版本号,功能描述等。本发明实施例对该组件创建请求不作具体限定,本领域技术人员可以根据实际情况确定。组件管理服务端可以根据组件创建请求中携带的信息创建组件并存储。当创建完成后,组件管理服务端向组件管理客户端发送创建成功的反馈信息。
作为本发明实施例一个可选实施方式,当组件信息操作请求为组件信息修改请求时,组件信息修改请求中携带有待修改的组件信息以及组件信息的替换信息,上述标识信息可以包括:目标组件的标识信息,组件管理客户端根据目标组件的标识信息确定待修改的组件,再利用组件信息的替换信息替换待修改的组件信息后进行存储。例如,将目标组件的名称从A修改为B。当修改完成后,组件管理服务端向组件管理客户端发送修改完成的反馈信息。
作为本发明实施例一个可选实施方式,当组件信息操作请求为应用程序与组件的依赖关系添加请求时,上述标识信息可以包括:目标应用程序的标识信息和目标组件的标识信息,上述步骤S22包括:
首先,根据目标应用程序的标识信息、目标组件的标识信息以及组件依赖关系确定目标应用程序与目标组件是否存在直接依赖关系。
其次,当目标应用程序与目标组件不存在直接依赖关系时,将目标应用程序与目标组件进行关联。
示例性地,组件管理服务端根据目标应用程序的标识信息、目标组件的标识信息以及组件依赖关系确定目标应用程序与目标组件是否存在直接依赖关系,若目标应用程序与目标组件之间已经存在直接依赖关系,组件管理服务端向组件管理客户端发送依赖关系已经存在的提示信息。若目标应用程序与目标组件不存在直接依赖关系时,将目标应用程序与目标组件进行关联。
作为本发明实施例一个可选实施方式,上述当目标应用程序与目标组件不存在直接依赖关系时,将目标应用程序与目标组件进行关联,包括:
首先,当目标应用程序与目标组件不存在直接依赖关系时,确定应用程序与组件的依赖关系添加请求中是否携带有目标组件的组件版本号。
其次,当应用程序与组件的依赖关系添加请求中携带有目标组件的组件版本号时,将目标应用程序与目标组件的组件版本号进行关联。
再次,当应用程序与组件的依赖关系添加请求中未携带有目标组件的组件版本号时,将目标应用程序与目标组件的第一预设组件版本号进行关联。
示例性地,当目标应用程序与目标组件不存在直接依赖关系时,组件管理服务端需要确定应用程序与组件的依赖关系添加请求中是否携带有目标组件的组件版本号,当携带有组件版本号时,将目标应用程序与目标组件的组件版本号进行关联;当没有携带组件版本号时,将目标应用程序与目标组件的第一预设组件版本号进行关联,该第一预设版本号可以为最新组件版本号,也可以为提前预设好的性能较好的组件版本号。本发明实施例对该第一预设组件版本号不作具体限定,本领域技术人员可以根据实际情况确定。
作为本发明实施例一个可选实施方式,在确定了与目标应用程序的目标组件的组件版本号时,确定组件管理服务端本地是否存在与上述目标组件版本号对应的组件版本标识,当已经存在时,从组件管理服务端直接获取该组件版本标识并进行关联;当不存在时,根据该组件版本号添加一个组件版本标识后进行关联。
作为本发明实施例一个可选实施方式,在组件管理服务端进行目标应用程序和目标组件的关联处理时,可以先根据本地存储的组件依赖关系确定是否有其他应用程序依赖该组件,当有其他应用程序依赖该组件时,直接将目标应用程序与目标组件进行关联,当没有其他应用程序依赖该组件时,在将目标应用程序与目标组件进行关联时将该目标组件的首次添加标记确定为该目标应用程序并进行存储。
作为本发明实施例一个可选实施方式,上述组件信息操作请求包括:应用程序的组件依赖关系查询请求,标识信息包括:目标应用程序的标识信息,根据标识信息和组件依赖关系执行组件信息操作请求对应的操作,包括:
首先,根据目标应用程序的标识信息与组件依赖关系确定目标应用程序是否存在直接依赖组件。
其次,当目标应用程序存在直接依赖组件时,将直接依赖组件的组件信息确定为查询结果。
示例性地,在本发明实施例中,应用程序与组件的直接依赖关系指的是应用程序与组件直接关联,即应用程序直接引用组件。例如,应用程序a依赖组件b,组件b又依赖组件c,那么组件b是应用程序a的直接依赖组件,组件c是应用程序a的间接依赖组件。该直接依赖组件的数量可以为1个,也可以为多个。本发明实施例对该直接依赖组件的数量不作具体限定,本领域技术人员可以根据实际情况确定。
该组件信息可以包括:组件名称、组件版本号、首次添加应用程序等。本发明实施例对该组件信息不作具体限定,本领域技术人员可以根据实际情况确定。
作为本发明实施例一个可选实施方式,上述当目标应用程序存在直接依赖组件时,将直接依赖组件的组件信息确定为查询结果,包括:
首先,当目标应用程序存在直接依赖组件时,根据组件依赖关系确定直接依赖组件是否存在依赖组件。
其次,当直接依赖组件存在依赖组件时,将直接依赖组件的组件信息以及直接依赖组件的依赖组件一起确定为查询结果。
示例性地,当从组件依赖关系中确定好目标应用程序的直接依赖组件时,再根据直接依赖组件以及组件依赖关系确定直接依赖组件的依赖组件,当直接依赖组件存在依赖组件时,将直接依赖组件的依赖组件的组件信息一并写入查询结果集中。当直接依赖组件不存在依赖组件时,从代码仓库(gitlab)中使用开发过程代码最稳定的分支获取直接依赖组件的相关依赖文件以确定该直接依赖组件是否存在依赖组件,当从依赖文件中也获取不到直接依赖组件的依赖组件时,直接将直接依赖组件的依赖组件设置为空,当从依赖文件中获取到直接依赖组件的依赖组件时,将直接依赖组件的依赖组件的组件信息一并写入查询结果集中。
作为本发明实施例一个可选实施方式,上述组件信息操作请求包括:组件版本号指定请求,标识信息为目标组件的标识信息,根据标识信息和组件依赖关系执行组件信息操作请求对应的操作,包括:
首先,从组件版本号指定请求中获取第二预设版本号。
其次,根据目标组件的标识信息将目标组件的目标组件版本号设置为第二预设版本号,以使得组件管理客户端在目标组件的组件版本号更新时使用目标组件的第二预设版本号。
示例性地,当目标组件x刚刚完成更新时,应用程序Y想要上市,没有时间完成对目标组件X最新版本的测试,技术人员往往会选择一个性能较为稳定的版本上市,因此需要给每一个组件设定一个目标版本号。该第二预设版本号可以为目标组件的性能较好的版本号。该第二预设版本号可以与上述第一预设版本号一样。
本发明实施例通过为每一个组件都设定一个性能较好的目标组件版本号,便于应用程序使用,提高了应用程序的稳定性。
本发明实施例还公开了一种应用程序的组件管理方法,如图2所述,应用于组件管理客户端,包括如下步骤:
S31:响应于用户的操作信息,向组件管理服务端发送组件信息操作请求。
示例性地,在本发明实施例中,用户在组件管理客户端的人机交互界面上点击相关虚拟按钮以实现相关操作,组件管理客户端响应用户的操作信息,向组件管理服务端发送组件信息操作请求。该组件信息操作请求可以是组件管理客户端通过有线网络或者无线网络的方法发送到组件管理服务端的,本发明实施例对该组件信息操作请求的发送方法不作具体限定,本领域技术人员可以根据组件管理客户端与组件管理服务端的连接关系确定。该组件信息操作请求的具体内容可参见上述步骤S21的描述,在此不再赘述。
S32:接收组件管理服务端根据组件操作请求和组件依赖关系执行组件信息操作请求对应的操作后发送的操作反馈信息。具体实施方式参见上述步骤S23的描述,在此不再赘述。
本发明通过组件管理服务端存储的组件依赖信息对组件信息进行中心化管理,每一个组件管理客户端都使用同一份组件数据,降低了组件管理客户端的数据差异,同时组件管理客户端向自己管理服务端发送组件信息操作请求以实现组件信息以及组件依赖关系的管理,满足组件数据量大时的开发需求。
作为本发明实施例一个可选实施方式,组件信息操作请求包括:组件查询请求,在接收组件管理服务端的反馈信息之后,该应用程序的组件管理方法还包括:
首先,获取组件信息列表。
其次,遍历组件信息列表。
再次,根据组件信息列表中的每一个组件的组件依赖关系以及组件信息生成多个目标文件。
示例性地,该组件信息列表可以包括组件查询请求中所以组件的组件信息,其可以从组件管理服务端的反馈信息中获取到。该目标文件可以包括:组件声明文件、排除依赖冲突文件以及指定版本文件等。
其中,上述依赖冲突指的是在开发过程中,同一个组件的代码可能会被打包到不同的Group_ID下,当一个应用程序引用了同一个组件的不同的Group_ID时,就会出现冲突,无法编译通过,该Group_ID表示的是组件上传到Maven仓库后对应的Group。
组件声明指的是用一个变量来定义冗长的组件地址,这样使用者无需关心具体的地址信息,使用组件时直接用变量即可。
组件声明文件的一个具体生成方法可以为:root Project.ext.set(‘KEY’,Group_ID+‘.git Group:module Name:latest.integration’);排除依赖冲突文件的一个具体生成方法可以为:configurations{all*.exclude group:‘com.ziroom.customer.GitGroup,module:‘module Name’};指定版本文件的一个具体生成方法可以为:configurations.all{resolution Strategy{force‘com.ziroom.customer.Git Group,module:‘module Name:version’}}。以上示例中,KEY表示变量名,使用组件时,直接引用该KEY即可;git Group表示gitlab组,是存放工程的路径;module Name为组件名称,version表示版本号,其他的都是一些构建脚本的语法。
本发明实施例通过组件管理客户端的研发脚本统一生成组件的配置文件,为研发人员提供了标准的组件使用规范,避免了开发人员使用规范不统一导致出现问题不易排查的问题。
本发明实施例还公开了一种应用程序的组件管理方法,如图4所示,应用于应用程序的组件管理系统,该应用程序的组件管理系统包括:互相连接的组件管理客户端和组件管理服务端,包括如下步骤:
S31:组件管理客户端响应于用户的操作信息,向组件管理服务端发送组件信息操作请求。
组件管理服务端接收组件管理客户端发送的组件信息操作请求,组件信息操作请求中携带有标识信息。
S21:组件管理服务端接收组件管理客户端发送的组件信息操作请求,组件信息操作请求中携带有标识信息。
S22:组件管理服务端根据标识信息和组件依赖关系执行组件信息操作请求对应的操作。
S23:组件管理服务端根据操作结果向组件管理客户端发送操作反馈信息。
S32:组件管理客户端接收组件管理服务端根据组件操作请求和组件依赖关系执行组件信息操作请求对应的操作后发送的操作反馈信息。
对本实施例中各个步骤的说明,参见上述实施例,在此不再赘述。
本发明实施例提供的应用程序的组件管理方法通过组件管理服务端存储的组件依赖信息对组件信息进行中心化管理,每一个组件管理客户端都使用同一份组件数据,降低了组件管理客户端的数据差异,同时根据组件管理客户端的组件信息操作请求实现组件信息以及组件依赖关系的管理,满足组件数据量大时的开发需求。
本发明实施例还公开了一种应用程序的组件管理装置,如图5所示,应用于组件管理服务端,包括:
第一接收模块41,用于接收组件管理客户端发送的组件信息操作请求,组件信息操作请求中携带有标识信息;具体实现方式见上述实施例中步骤S21的相关描述,在此不再赘述。
执行模块42,用于根据标识信息和组件依赖关系执行组件信息操作请求对应的操作;具体实现方式见上述实施例中步骤S22的相关描述,在此不再赘述。
第一发送模块43,用于根据操作结果向组件管理客户端发送操作反馈信息。具体实现方式见上述实施例中步骤S23的相关描述,在此不再赘述。
本发明实施例通过组件管理服务端存储的组件依赖信息对组件信息进行中心化管理,每一个组件管理客户端都使用同一份组件数据,降低了组件管理客户端的数据差异,同时根据组件管理客户端的组件信息操作请求实现组件信息以及组件依赖关系的管理,满足组件数据量大时的开发需求。
作为本发明实施例一个可选实施方式,组件信息操作请求包括:应用程序与组件的依赖关系添加请求,标识信息包括:目标应用程序的标识信息和目标组件的标识信息,上述执行模块42包括:
第一确定模块,用于根据目标应用程序的标识信息、目标组件的标识信息以及组件依赖关系确定目标应用程序与目标组件是否存在直接依赖关系;具体实现方式见上述实施例中对应的步骤的相关描述,在此不再赘述。
关联模块,用于当目标应用程序与目标组件不存在直接依赖关系时,将目标应用程序与目标组件进行关联。具体实现方式见上述实施例中对应的步骤的相关描述,在此不再赘述。
作为本发明实施例一个可选实施方式,当目标应用程序与目标组件不存在直接依赖关系时,上述关联模块包括:
第二确定模块,用于当目标应用程序与目标组件不存在直接依赖关系时,确定应用程序与组件的依赖关系添加请求中是否携带有目标组件的组件版本号;具体实现方式见上述实施例中对应的步骤的相关描述,在此不再赘述。
第一关联子模块,用于当应用程序与组件的依赖关系添加请求中携带有目标组件的组件版本号时,将目标应用程序与目标组件的组件版本号进行关联。具体实现方式见上述实施例中对应的步骤的相关描述,在此不再赘述。
作为本发明实施例一个可选实施方式,该应用程序的组件管理装置还包括:
第二关联子模块,用于当应用程序与组件的依赖关系添加请求中未携带有目标组件的组件版本号时,将目标应用程序与目标组件的预设组件版本号进行关联。具体实现方式见上述实施例中对应的步骤的相关描述,在此不再赘述。
作为本发明实施例一个可选实施方式,组件信息操作请求包括:应用程序的组件依赖关系查询请求,标识信息包括:目标应用程序的标识信息,上述执行模块42包括:
第三确定模块,用于根据目标应用程序的标识信息与组件依赖关系确定目标应用程序是否存在直接依赖组件;具体实现方式见上述实施例中对应的步骤的相关描述,在此不再赘述。
第四确定模块,用于当目标应用程序存在直接依赖组件时,将直接依赖组件的组件信息确定为查询结果。具体实现方式见上述实施例中对应的步骤的相关描述,在此不再赘述。
作为本发明实施例一个可选实施方式,第四确定模块包括:
第四确定子模块,用于当目标应用程序存在直接依赖组件时,根据组件依赖关系确定直接依赖组件是否存在依赖组件;具体实现方式见上述实施例中对应的步骤的相关描述,在此不再赘述。
查询结果确定模块,用于当直接依赖组件存在依赖组件时,将直接依赖组件的组件信息以及直接依赖组件的依赖组件一起确定为查询结果。具体实现方式见上述实施例中对应的步骤的相关描述,在此不再赘述。
作为本发明实施例一个可选实施方式,组件信息操作请求包括:组件版本号指定请求,标识信息为目标组件的标识信息,上述执行模块42包括:
第一获取模块,用于从组件版本号指定请求中获取第一预设版本号;具体实现方式见上述实施例中对应的步骤的相关描述,在此不再赘述。
设置模块,用于根据目标组件的标识信息将目标组件的目标组件版本号设置为第一预设版本号,以使得组件管理客户端在目标组件的组件版本号更新时使用目标组件的第一预设版本号。具体实现方式见上述实施例中对应的步骤的相关描述,在此不再赘述。
本发明实施例还公开了一种应用程序的组件管理装置,如图6所示,应用于组件管理客户端,包括:
第二发送模块51,用于响应于用户的操作信息,向组件管理服务端发送组件信息操作请求;具体实现方式见上述实施例中步骤S31的相关描述,在此不再赘述。
第二接收模块52,用于接收组件管理服务端根据组件操作请求和组件依赖关系执行组件信息操作请求对应的操作后发送的操作反馈信息。具体实现方式见上述实施例中步骤S32的相关描述,在此不再赘述。
本发明通过组件管理服务端存储的组件依赖信息对组件信息进行中心化管理,每一个组件管理客户端都使用同一份组件数据,降低了组件管理客户端的数据差异,同时组件管理客户端向自己管理服务端发送组件信息操作请求以实现组件信息以及组件依赖关系的管理,满足组件数据量大时的开发需求。
作为本发明实施例一个可选实施方式,组件信息操作请求包括:组件查询请求,该应用程序的组件管理装置还包括:
第二获取模块,用于获取组件信息列表;具体实现方式见上述实施例中对应的步骤的相关描述,在此不再赘述。
遍历模块,用于遍历组件信息列表;具体实现方式见上述实施例中对应的步骤的相关描述,在此不再赘述。
生成模块,用于根据组件信息列表中的每一个组件的组件依赖关系以及组件信息生成多个目标文件。具体实现方式见上述实施例中对应的步骤的相关描述,在此不再赘述。
本发明实施例还提供了一种计算机设备,如图7所示,该计算机设备可以包括处理器61和存储器62,其中处理器61和存储器62可以通过总线或者其他方式连接,图7中以通过总线连接为例。
处理器61可以为中央处理器(Central Processing Unit,CPU)。处理器61还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器62作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的应用程序的组件管理方法对应的程序指令/模块(例如,图5所示的第一接收模块41、执行模块42和第一发送模块43或图6所示的第二发送模块51和第二接收模块52)。处理器61通过运行存储在存储器62中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的应用程序的组件管理方法。
存储器62可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器61所创建的数据等。此外,存储器62可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器62可选包括相对于处理器61远程设置的存储器,这些远程存储器可以通过网络连接至处理器61。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个模块存储在所述存储器62中,当被所述处理器61执行时,执行如图2-3所示实施例中的应用程序的组件管理方法。
上述计算机设备具体细节可以对应参阅图2至图3所示的实施例中对应的相关描述和效果进行理解,此处不再赘述。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random AccessMemory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
- 一种应用程序的组件管理方法、装置及计算机设备
- 一种应用程序管理方法、装置、设备及计算机存储介质