CN112256247A - 模块组件的依赖处理方法、装置、计算机设备及存储介质 - Google Patents

模块组件的依赖处理方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN112256247A
CN112256247A CN202011072412.8A CN202011072412A CN112256247A CN 112256247 A CN112256247 A CN 112256247A CN 202011072412 A CN202011072412 A CN 202011072412A CN 112256247 A CN112256247 A CN 112256247A
Authority
CN
China
Prior art keywords
dependency
target
module component
module
type
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202011072412.8A
Other languages
English (en)
Other versions
CN112256247B (zh
Inventor
谢将权
夏正冬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Zitiao Network Technology Co Ltd
Original Assignee
Beijing Zitiao Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Zitiao Network Technology Co Ltd filed Critical Beijing Zitiao Network Technology Co Ltd
Priority to CN202011072412.8A priority Critical patent/CN112256247B/zh
Publication of CN112256247A publication Critical patent/CN112256247A/zh
Application granted granted Critical
Publication of CN112256247B publication Critical patent/CN112256247B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Abstract

本发明公开了一种模块组件的依赖处理方法、装置、计算机设备及存储介质,该方法包括:根据模块组件的描述信息生成依赖关系,依赖关系表示模块组件的依赖类型;响应于同步指令的触发,从模块组件中确定出待同步的目标模块组件;根据目标模块组件的目标依赖关系确定目标模块组件的目标依赖类型;根据目标依赖类型进行同步操作。本申请实施例中用户只需要对模块组件的描述信息进行修改,即可实现模块组件依赖类型的变更,提高依赖替换速度。在同步过程中,根据预先生成的依赖关系确定目标模块组件的目标依赖类型,由于目标依赖关系根据目标描述信息生成,因此对于同一个模块组件其依赖关系是相同的,提高依赖替换的可靠性。

Description

模块组件的依赖处理方法、装置、计算机设备及存储介质
技术领域
本发明实施例涉及软件自动化开发技术,尤其涉及一种模块组件的依赖处理方法、装置、计算机设备及存储介质。
背景技术
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。其中,Apache Ant是由Apache软件基金会所提供的,一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,用于Java环境中的软件开发。Apache Maven是由Apache软件基金会所提供的软件(特别是Java软件)项目管理及自动构建工具。
随着Android业务迭代,业务复杂度逐渐提升,为了功能和代码解耦,对业务按照功能划分进行了模块化工作。模块组件和主工程在同一个代码仓库路径下,部分模块组件比较稳定,改动量较小,因此这部分模块组件会上传到远程数据源aar,依赖以远程数据源aar形式引入。当需要修改的时候,将arr依赖改成本地依赖。
目前,在进行本地依赖与aar依赖的切换时,需要由编程人员对模块组件中所有模块组件的引用位置进行手动修改,修改速度慢,且容易出现错改、漏改等问题,可靠性差。
发明内容
本发明提供一种模块组件的依赖处理方法、装置、计算机设备及存储介质,以实现提高依赖替换的速度和稳定性。
第一方面,本发明实施例提供了一种模块组件的依赖处理方法,包括:
根据模块组件的描述信息生成依赖关系,依赖关系表示模块组件的依赖类型;
响应于同步指令的触发,从模块组件中确定出待同步的目标模块组件;
根据目标模块组件的目标依赖关系确定目标模块组件的目标依赖类型;
根据目标依赖类型进行同步操作,同步操作用于根据目标依赖类型获取到数据源,根据数据源对目标模块组件的代码进行同步
第二方面,本发明实施例还提供了一种模块组件的依赖处理装置,包括:
依赖关系生成模块,用于根据模块组件的描述信息生成依赖关系,依赖关系表示模块组件的依赖类型;
同步触发模块,用于响应于同步指令的触发,从模块组件中确定出待同步的目标模块组件;
依赖类型确定模块,用于根据目标模块组件的目标依赖关系确定目标模块组件的目标依赖类型;
同步执行模块,用于根据目标依赖类型进行同步操作,同步操作用于根据目标依赖类型获取到数据源,根据数据源对目标模块组件的代码进行同步。
第三方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,处理器执行程序时实现如本申请实施例所示的模块组件的依赖处理方法。
第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行如本申请实施例所示的模块组件的依赖处理方法。
本申请实施例提供的模块组件的依赖处理方案,用户可以编辑模块组件的描述信息,程序根据用户编辑的描述信息生成依赖关系。在触发同步指令时,响应于同步指令的触发,从模块组件中确定出待同步的目标模块组件。根据目标模块组件的目标依赖关系确定目标模块组件的目标依赖类型;根据目标依赖类型进行同步操作。相对于目前需要人工修改每一处引用位置,依赖替换速度慢且可靠性差。本申请实施例中,用户预先编辑模块组件的描述信息,更改描述信息中模块组件的依赖类型。计算机根据用户编辑的描述信息生成依赖关系,在触发同步指令时,响应于同步指令的触发,根据目标模块组件的目标依赖关系确定目标依赖类型。用户只需要对目标模块组件的描述信息进行修改,即可实现目标模块组件的目标依赖类型的变更,无需手动修改每一处引用位置,提高了目标依赖替换速度。在同步过程中,根据预先生成的依赖关系确定目标模块组件的目标依赖类型,由于依赖关系根据描述信息生成,因此对于同一个目标模块组件其依赖关系是不变的,避免人工修改时错改、漏改等问题,提高了依赖替换的可靠性。
附图说明
图1是本发明实施例一中的模块组件的依赖处理方法的流程图;
图2是本发明实施例二中的模块组件的依赖处理方法的流程图;
图3是本发明实施例三中的一个模块组件的依赖处理装置的结构示意图;
图4是本发明实施例三中的另一个模块组件的依赖处理装置的结构示意图;
图5是本发明实施例四中的计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种模块组件的依赖处理方法的流程图,本实施例可适用于软件开发过程中模块组件依赖修改的情况,该方法可以由执行程序开发的计算机设备来执行,计算机设备可以为个人电脑、工作站或服务器等,具体包括如下步骤:
步骤110、根据模块组件的描述信息生成依赖关系。
其中,依赖关系表示模块组件的依赖类型,依赖类型为本地依赖或arr依赖,模块组件的描述信息由用户编辑。本地依赖又称本地源码依赖。
模块组件的描述信息包括模块组件的依赖类型。模块组件的描述信息除了包括模块组件的依赖类型,还包括模块组件的名称等信息。本申请实施例可以用于对模块组件的依赖关系进行替换,此时可以将描述信息中依赖类型进行提取,得到模块组件与依赖类型的关联关系,即依赖关系。根据依赖关系可以获知模块组件具体的依赖类型,依赖类型为本地依赖或arr依赖。本地依赖指的是模块组件依赖的数据源是通过本地资源获取的。Arr依赖指的是模块组件依赖的数据源是通过远程资源获取的。
模块组件的描述信息可以由用户预先编辑,例如当用户希望将某个模块的依赖类型由arr依赖修改为本地依赖时,可以对描述信息中的依赖类型进行修改。描述信息除了依赖类型之外,还包括本地依赖路径、arr依赖路径。在修改依赖类型之余,用户还可以编辑本地依赖路径和arr依赖路径。本地依赖路径可以为本地依赖的路径,可以通过下述代码表示“:features:module-a”,其中,module-a是本地依赖的模块组件名称。
可选的,在Gradle工具中,根据模块组件的描述信息生成依赖关系。
可以在Gradle工具中设置一个组件,用于执行步骤110。该组件可以根据用户编辑的模块组件的描述信息生成依赖关系。
步骤120、响应于同步指令的触发,从模块组件中确定出待同步的目标模块组件。
同步指令用于对目标模块组件的进行代码的同步。目前的方式为,用户手动修改每个模块组件的引用位置后,触发同步指令。本申请实施例在生成依赖关系后,可以由用户触发同步指令,在触发同步指令后自动进行代码更新。
可选的,在Gradle工具中触发同步指令时,获取待同步的目标模块组件。待同步的目标模块组件可以为Gradle工具编辑的程序中所涉及的全部模组件。Gradle工具提供用于进行同步的插件,当用户点击Gradle界面中的“同步”按钮时,触发同步指令。该同步指令可以用于线上线下代码的同步和更新。响应于同步指令的触发,获取同步指令指向的多个目标模块组件。
步骤130、根据目标模块组件的目标依赖关系确定目标模块组件的目标依赖类型。
依次遍历全部模块组件,对于当前遍历的目标模块组件,获取该目标模块组件的目标依赖关系。根据该目标依赖关系确定目标模块组件的目标依赖类型。用户通过编辑描述信息中的依赖类型,能够编辑步骤110中生成的依赖关系,进而控制同步过程中目标模块组件的目标依赖类型。当目标模块组件在程序中多次出现时,每次处理到目标模块组件时,均会根据目标依赖关系确定目标模块组件的目标依赖类型,无需用户对每个引用位置上的目标模块组件分别进行修改。
此外,用户不仅可以将描述信息中的arr依赖修改为本地依赖,还可以将本地依赖修改为arr依赖。描述信息中可以通过一个布尔值表示本地依赖或arr依赖,例如true表示本地依赖,false表示arr依赖。
步骤140、根据目标依赖类型进行同步操作。
根据目标依赖类型,可确定目标模块组件的本地依赖的路径或arr依赖的路径,根据路径获取目标模块组件所需的数据源,将目标模块组件的代码同步至与该数据源相同,完成同步操作。
同步操作用于根据目标依赖类型获取到数据源,根据数据源对目标模块组件的代码进行同步。例如,如果为本地依赖,则获取本地项目project,如果是arr依赖,则获取arr依赖的路径。基于本地项目project或arr依赖路径进行同步操作。如果是本地依赖,则根据本地依赖路径查找本地项目,将目标模块组件的数据与该本地项目进行同步。如果是arr依赖,则根据arr依赖的路径获取远程的数据源。将目标模块组件与该数据源进行同步。
本申请实施例提供的模块组件的依赖处理方法,用户可以编辑模块组件的描述信息,程序根据用户编辑的描述信息生成依赖关系。在触发同步指令时,响应于同步指令的触发,从模块组件中确定出待同步的目标模块组件。根据目标模块组件的目标依赖关系确定目标模块组件的目标依赖类型;根据目标依赖类型进行同步操作。相对于目前需要人工修改每一处引用位置,依赖替换速度慢且可靠性差。本申请实施例中,用户预先编辑模块组件的描述信息,更改描述信息中模块组件的依赖类型。计算机根据用户编辑的描述信息生成依赖关系,在触发同步指令时,响应于同步指令的触发,根据目标模块组件的目标依赖关系确定目标依赖类型。用户只需要对目标模块组件的描述信息进行修改,即可实现目标模块组件的目标依赖类型的变更,无需手动修改每一处引用位置,提高了目标依赖替换速度。在同步过程中,根据预先生成的依赖关系确定目标模块组件的目标依赖类型,由于依赖关系根据描述信息生成,因此对于同一个目标模块组件其依赖关系是不变的,避免人工修改时错改、漏改等问题,提高了依赖替换的可靠性。
实施例二
图2为本申请实施例提供的一种模块组件的依赖处理方法的流程图,作为对上述实施例的进一步说明。在步骤110之前,还包括:接收用户输入的编辑操作,编辑操作用于修改配置文件中模块组件的描述信息。相应的,步骤110包括:根据描述信息中记载的依赖类型生成映射表,映射表用于记载模块组件与依赖类型的映射关系。上述方法可通过下述步骤实施:
步骤210、接收用户输入的编辑操作,编辑操作用于修改配置文件中模块组件的描述信息。
其中,配置文件包含多个模块组件的描述信息,描述信息包括模块组件名称、依赖类型、本地依赖路径或arr依赖路径中的一种或多种的组合。
在项目根添加配置文件config_module.Gradle,统一定义工程需要依赖的模块。用户以传参方式向配置文件中增加或修改模块组件的描述信息。
可选的,如果模块组件的依赖类型为本地依赖,则接收用户输入的模块组件名称、依赖类型、本地依赖路径。如果模块组件的依赖类型为arr依赖,则接收用户输入的模块组件名称、依赖类型、arr依赖路径,arr依赖路径包括模块组件版本、groupId和artifact Id。
不同依赖类型的描述信息有所不同。下面通过两个例子分别定义本地依赖模块和arr依赖模块。
示例1:
module_a:new ModuleDescription(“module_a”//模块组件名称
true//是否为本地源码依赖,true表示本地依赖,false表示arr依赖
“:features:module-a”//模块本地源码路径)
如果模块组件为本地依赖,则描述信息包括模块组件名称、依赖类型(true)和本地依赖路径。
示例2:
module_b:new ModuleDescription(“module_b”//模块组件名称
true//是否为本地源码依赖,true表示本地依赖,false表示arr依赖
“com.ss.your.groupId”//arr依赖的groupId
“module_b”//arr依赖的artifactId
“1.0.0”//版本version)
如果模块组件为arr依赖,则描述信息包括模块组件名称、依赖类型(false)、模块版本和arr依赖路径。其中,arr依赖路径包括模块组件版本version、groupId和artifactId。其中,groupId为目组织机构名称;artifactId为artifacId指项目名称。
步骤220、根据描述信息中记载的依赖类型生成映射表,映射表用于记载模块组件与依赖类型的映射关系。
将配置文件中描述信息记载的模块组件的依赖类型进行提取,建立模块组件与依赖类型的键值对,该键值对表示模块组件与依赖类型的映射关系。将该键值对添加到映射表中。
示例性的,步骤220可通过下述方式实施:
步骤一、依次访问配置文件中每个模块组件的描述信息。
配置文件中存储有多个模块组件的描述信息。依次读取每个模块组件的描述信息。
步骤二、根据当前模块组件的描述信息中记载的依赖类型,生成当前模块的依赖关系,当前模块组件为当前访问的模块组件。
获取当前模块组件的描述信息的依赖类型,如果为true,则为本地依赖,如果为false,则为arr依赖。建立该依赖类型与当前模块组件的关联关系,得到依赖关系。
步骤三、将依赖关系添加到映射表,映射表为全局变量。
使用作为全局变量的映射表能够使模块组件的依赖关系被全局访问,使得依赖关系能够被快速读取。
步骤230、响应于同步指令的触发,从模块组件中确定出待同步的目标模块组件。
步骤240、根据目标模块组件的目标依赖关系确定目标模块组件的目标依赖类型。
当依赖关系存储在全局变量的映射表中时,步骤240可通过下述方式实施:
首先,获取映射表中记载的目标模块组件的目标依赖关系;然后,根据目标模块组件的依赖关系确定目标模块组件的目标依赖类型。
按照目标模块组件的目标模块组件名称找到包含该目标模块组件名称的目标依赖关系。将该目标依赖关系中记载的目标依赖类型作为目标模块组件的目标依赖类型。
步骤250、根据目标依赖类型进行同步操作,同步操作用于根据目标依赖类型获取到数据源,根据数据源对目标模块组件的代码进行同步。
如果目标依赖类型为本地依赖,则根据本地依赖路径获取本地项目;根据本地项目进行同步。如果目标依赖类型为arr依赖,则根据arr依赖路径查找线上工程,根据线上工程进行更新。
如果为本地依赖,则根据本地依赖路径可获取到本地项目project,将本地项目作为依赖对象。如果为arr依赖,则根据arr依赖路径合成maven uri,maven uri作为外部依赖的地址,根据maven uri可获取到arr依赖。根据arr依赖路径合成maven uri(UniformResource Identifier,统一资源标识符),可以为根据version、groupId和artifactId合成maven uri。例如groupId:artifactId:version,表示某个工作组(groupId)中某个项目(artifactId)的某个版本(version)。
下面以Gradle工具为例进行说明。在Gradle开始配置的时候,setting.Gradle调用applyAllModule。该方法主要工作是如下:
1、向setting.Gradle中添加本地源码依赖的模块信息。
在setting.Gradle文件入口调用applyAllModule方法,该方法在Gradle配置阶段开始工作。调用语句可以为:Gradle.ModuleUtils.applyALLModule()
applyALLModuled()用于对配置文件mymodules中的模块组件的描述信息逐个进行访问,获取当前模块组件的描述信息。判断模块是否是本地依赖,如果是本地依赖,则通过include方法将模块添加setting.Gradle中,进而完成setting.Gradle模块添加工作。
2、为Gradle映射表Gradle.ext.module(全局变量)赋值,映射表Gradle.ext.module后续在引用依赖的时候会用到。
在applyAllModule方法末尾还调用了方法addAllModule。addAllModule用于:对配置文件mymodules进行遍历,获取当前模块组件的描述信息,然后调用getModuleProject获取模块project。getModuleProject对模块组件是否本地依赖进行判断。如果是true,即本地依赖,则通过findProject返回一个本地模块project。如果是false,即arr依赖,则根据预设拼接方式得到maven uri(即maven路径),maven uri作为给模块组件的arr依赖的路径。按照上述方式处理配置文件中的全部模块组件的描述信息后,addAllModule可获取到所有模块组件的依赖关系,并且添加到全局变量映射表Gradle.ext.module上,后续其他地方引用模块就可以通过映射表Gradle.ext.module中的变量找到模块的依赖。
映射表Gradle.ext.module的引用方式可以为,“api gardle.module.module_a”该语句用于使用api函数调用module_a模块组件。又例如“implementationGradle.module.module_b”该语句用于设置module_b的依赖。
本申请实施例提供的模块组件的依赖处理方法,分为两个阶段,分别为配置阶段和同步阶段。在配置阶段,用户可以自由的对配置文件中模块组件的描述信息进行配置,提高易用性。用户只要修改配置文件的描述信息即可,无需逐个修改每个模块的应用位置,大幅提高修改速度。配置文件对用户可见,映射表对用户不可见但对计算机进程可见。计算机根据用户编辑的配置文件生成全局变量的映射表。配置阶段还包括将本地依赖的本地项目project添加到setting.Gradle中。用户在配置阶段可以对依赖模块组件进行统一配置,依赖配置收敛到一处,即配置文件中模块组件的描述信息。在同步阶段,Gradle同步阶段解析外部引用对模块的依赖,可以使用resolutionStrategy的DependencySubstitution进行依赖替换。使用模块组件的模块名称作为key查找映射表Gradle.ext.module。根据映射表得到目标依赖类型。如果目标依赖类型为本地依赖,则替换为本地project。否则,如果目标依赖类型为aar依赖,则根据arr依赖路径生成maven uri,maven uri作为arr依赖的地址。实现由计算机设备根据用户编辑的配置文件,自动完成同步过程,该过程中无需用户逐一修改模块组件引用位置,而是通过对配置文件的一次修改,以及计算机设备根据配置文件生成映射表,并在后续每次模块组件的依赖获取中根据映射表查找依赖,进而实现快速的依赖替换,提高依赖替换速度。用户可以在Gradle工具中通过同步按钮,触发本申请的同步阶段,实现一键完成本地源与arr依赖的切换。当同步操作完成时,工程中全部模块组件的依赖均已更改完毕,方便快捷。
实施例三
图3为本申请实施例三提供的一种模块组件的依赖处理装置的结构示意图,该装置包括:依赖关系生成模块310、同步触发模块320、依赖类型确定模块330以及同步执行模块340。
依赖关系生成模块310,用于根据模块组件的描述信息生成依赖关系,依赖关系表示模块组件的依赖类型;
同步触发模块320,用于响应于同步指令的触发,从模块组件中确定出待同步的目标模块组件;
依赖类型确定模块330,用于根据目标模块组件的目标依赖关系确定目标模块组件的目标依赖类型;
同步执行模块340,用于根据目标依赖类型进行同步操作,同步操作用于根据目标依赖类型获取到数据源,根据数据源对目标模块组件的代码进行同步。
进一步的,如图4所以,还包括输入模块350;
输入模块350用于接收用户输入的编辑操作,编辑操作用于修改配置文件中模块组件的描述信息;配置文件包含多个模块组件的描述信息,描述信息包括模块组件名称、依赖类型、本地依赖路径或arr依赖路径中的一种或多种的组合。
依赖关系生成模块310用于,根据描述信息中记载的依赖类型生成映射表,映射表用于记载模块组件与依赖类型的映射关系。
进一步的,依赖关系生成模块310用于,依次访问配置文件中每个模块组件的描述信息;
根据当前模块组件的描述信息中记载的依赖类型,生成当前模块的依赖关系,当前模块组件为当前访问的模块组件;
将依赖关系添加到映射表,映射表为全局变量。
进一步的,依赖类型确定模块330用于,获取映射表中记载的目标模块组件的目标依赖关系;
根据目标模块组件的目标依赖关系确定目标模块组件的目标依赖类型。
进一步的,输入模块用于如果模块组件的依赖类型为本地依赖,则接收用户输入的模块组件名称、依赖类型、本地依赖路径;
如果模块组件的依赖类型为arr依赖,则接收用户输入的模块组件名称、依赖类型、arr依赖路径,arr依赖路径包括模块组件版本、groupId和artifact Id。
进一步的,同步执行模块340用于,如果目标依赖类型为本地依赖,则根据本地依赖路径,获取本地项目;根据本地项目进行同步;
如果目标依赖类型为arr依赖,则根据arr依赖路径查找线上工程,根据线上工程进行更新。
进一步的,依赖关系生成模块310用于,在Gradle工具中,根据模块组件的描述信息生成依赖关系。
同步触发模块320用于,在Gradle工具中触发同步指令时,获取待同步的目标模块组件。
本申请实施本申请实施例提供的模块组件的依赖处理装置,依赖关系生成模块310根据模块组件的描述信息生成依赖关系,依赖关系表示模块组件的依赖类型;同步触发模块320响应于同步指令的触发,从模块组件中确定出待同步的目标模块组件;依赖类型确定模块330根据目标模块组件的目标依赖关系确定目标模块组件的目标依赖类型;同步执行模块340根据目标依赖类型进行同步操作。相对于目前需要人工修改每一处引用位置,依赖替换速度慢且可靠性差。本申请实施例中,用户预先编辑模块组件的描述信息,更改描述信息中模块组件的依赖类型。计算机根据用户编辑的描述信息生成依赖关系,在触发同步指令时,响应于同步指令的触发,根据目标模块组件的目标依赖关系确定目标依赖类型。用户只需要对目标模块组件的描述信息进行修改,即可实现目标模块组件的目标依赖类型的变更,无需手动修改每一处引用位置,提高了目标依赖替换速度。在同步过程中,根据预先生成的依赖关系确定目标模块组件的目标依赖类型,由于依赖关系根据描述信息生成,因此对于同一个目标模块组件其依赖关系是不变的,避免人工修改时错改、漏改等问题,提高了依赖替换的可靠性。
本发明实施例所提供的模块组件的依赖处理装置可执行本发明任意实施例所提供的模块组件的依赖处理方法,具备执行方法相应的功能模块和有益效果。
实施例四
图5为本发明实施例四提供的一种计算机设备的结构示意图,如图5所示,该计算机设备包括处理器40、存储器41、输入装置42和输出装置43;计算机设备中处理器40的数量可以是一个或多个,图5中以一个处理器40为例;计算机设备中的处理器40、存储器41、输入装置42和输出装置43可以通过总线或其他方式连接,图5中以通过总线连接为例。
存储器41作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的模块组件的依赖处理方法对应的程序指令/模块(例如,模块组件的依赖处理装置中的依赖关系生成模块310、同步触发模块320、依赖类型确定模块330、同步执行模块340以及输入模块350)。处理器40通过运行存储在存储器41中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的模块组件的依赖处理方法。
存储器41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器41可进一步包括相对于处理器40远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置42可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置43可包括显示屏等显示设备。
实施例五
本发明实施例五还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种模块组件的依赖处理方法,该方法包括:
根据模块组件的描述信息生成依赖关系,依赖关系表示模块组件的依赖类型;
响应于同步指令的触发,从模块组件中确定出待同步的目标模块组件;
根据目标模块组件的目标依赖关系确定目标模块组件的目标依赖类型;
根据目标依赖类型进行同步操作,同步操作用于根据目标依赖类型获取到数据源,根据数据源对目标模块组件的代码进行同步。
进一步的,在根据模块组件的描述信息生成依赖关系之前,还包括:
接收用户输入的编辑操作,编辑操作用于修改配置文件中模块组件的描述信息;描述信息包括模块组件名称、依赖类型、本地依赖路径或arr依赖路径中的一种或多种的组合;
根据模块组件的描述信息生成依赖关系,包括;
根据描述信息中的依赖类型生成映射表,映射表用于记载模块组件与依赖类型的映射关系。
进一步的,根据描述信息中记载的依赖类型生成映射表,包括:
访问配置文件中每个模块组件的描述信息;
根据当前模块组件的描述信息中记载的依赖类型,生成当前模块的依赖关系,当前模块组件为当前访问的模块组件;
将依赖关系添加到映射表,映射表为全局变量。
进一步的,根据目标模块组件的目标依赖关系确定目标模块组件的目标依赖类型,包括:
获取映射表中记载的目标模块组件的目标依赖关系;
根据目标模块组件的目标依赖关系确定目标模块组件的目标依赖类型。
进一步的,接收用户输入的编辑操作,编辑操作用于修改配置文件中模块组件的描述信息,包括:
如果模块组件的依赖类型为本地依赖,则接收用户输入的模块组件名称、依赖类型、本地依赖路径;
如果模块组件的依赖类型为arr依赖,则接收用户输入的模块组件名称、依赖类型、arr依赖路径,arr依赖路径包括模块组件版本、groupId和artifact Id。
进一步的,根据目标依赖类型进行同步操作,包括:
如果目标依赖类型为本地依赖,则根据本地依赖路径获取本地项目;根据本地项目进行同步;
如果目标依赖类型为arr依赖,则根据arr依赖路径查找线上工程,根据线上工程进行更新。
进一步的,根据模块组件的描述信息生成依赖关系,包括:
在Gradle工具中,根据模块组件的描述信息生成依赖关系;
相应的,触发同步指令时,获取待同步的目标模块组件,包括:
在Gradle工具中触发同步指令时,获取待同步的目标模块组件。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的模块组件的依赖处理方法中的相关操作.
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述搜索装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种模块组件的依赖处理方法,其特征在于,包括:
根据模块组件的描述信息生成依赖关系,所述依赖关系表示模块组件的依赖类型;
响应于同步指令的触发,从所述模块组件中确定出待同步的目标模块组件;
根据所述目标模块组件的目标依赖关系确定所述目标模块组件的目标依赖类型;
根据所述目标依赖类型进行同步操作,所述同步操作用于根据目标依赖类型获取到数据源,根据数据源对目标模块组件的代码进行同步。
2.根据权利要求1所述的方法,其特征在于,在根据模块组件的描述信息生成依赖关系之前,还包括:
接收用户输入的编辑操作,所述编辑操作用于修改配置文件中模块组件的描述信息;所述描述信息包括模块组件名称、依赖类型、本地依赖路径或arr依赖路径中的一种或多种的组合;
所述根据模块组件的描述信息生成依赖关系,包括;
根据所述描述信息中的依赖类型生成映射表,所述映射表用于记载模块组件与依赖类型的映射关系。
3.根据权利要求2所述的方法,其特征在于,所述根据所述描述信息中记载的依赖类型生成映射表,包括:
访问配置文件中每个模块组件的描述信息;
根据当前模块组件的描述信息中记载的依赖类型,生成所述当前模块的依赖关系,所述当前模块组件为当前访问的模块组件;
将所述依赖关系添加到映射表,所述映射表为全局变量。
4.根据权利要求3所述的方法,其特征在于,所述根据所述目标模块组件的目标依赖关系确定所述目标模块组件的目标依赖类型,包括:
获取所述映射表中记载的所述目标模块组件的目标依赖关系;
根据所述目标模块组件的目标依赖关系确定所述目标模块组件的目标依赖类型。
5.根据权利要求4所述的方法,其特征在于,所述接收用户输入的编辑操作,所述编辑操作用于修改配置文件中模块组件的描述信息,包括:
如果模块组件的依赖类型为本地依赖,则接收用户输入的模块组件名称、依赖类型、本地依赖路径;
如果模块组件的依赖类型为arr依赖,则接收用户输入的模块组件名称、依赖类型、arr依赖路径,所述arr依赖路径包括模块组件版本、groupId和artifact Id。
6.根据权利要求5所述的方法,其特征在于,所述根据所述目标依赖类型进行同步操作,包括:
如果所述目标依赖类型为本地依赖,则根据所述本地依赖路径获取本地项目;根据所述本地项目进行同步;
如果所述目标依赖类型为arr依赖,则根据所述arr依赖路径查找线上工程,根据所述线上工程进行更新。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述根据模块组件的描述信息生成依赖关系,包括:
在Gradle工具中,根据模块组件的描述信息生成依赖关系;
相应的,所述触发同步指令时,获取待同步的目标模块组件,包括:
在Gradle工具中触发同步指令时,获取待同步的目标模块组件。
8.一种模块组件的依赖处理装置,其特征在于,包括:
依赖关系生成模块,用于根据模块组件的描述信息生成依赖关系,所述依赖关系表示模块组件的依赖类型;
同步触发模块,用于响应于同步指令的触发,从所述模块组件中确定出待同步的目标模块组件;
依赖类型确定模块,用于根据所述目标模块组件的目标依赖关系确定所述目标模块组件的目标依赖类型;
同步执行模块,用于根据所述目标依赖类型进行同步操作,所述同步操作用于根据目标依赖类型获取到数据源,根据数据源对目标模块组件的代码进行同步。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7中任一所述的模块组件的依赖处理方法。
10.一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7中任一所述的模块组件的依赖处理方法。
CN202011072412.8A 2020-10-09 2020-10-09 模块组件的依赖处理方法、装置、计算机设备及存储介质 Active CN112256247B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011072412.8A CN112256247B (zh) 2020-10-09 2020-10-09 模块组件的依赖处理方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011072412.8A CN112256247B (zh) 2020-10-09 2020-10-09 模块组件的依赖处理方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN112256247A true CN112256247A (zh) 2021-01-22
CN112256247B CN112256247B (zh) 2023-07-28

Family

ID=74234724

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011072412.8A Active CN112256247B (zh) 2020-10-09 2020-10-09 模块组件的依赖处理方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN112256247B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114036769A (zh) * 2021-11-18 2022-02-11 中国航空无线电电子研究所 面向航电系统物理架构的功能部署方案生成方法及装置
CN114816393A (zh) * 2022-05-18 2022-07-29 北京百度网讯科技有限公司 信息生成方法、装置、设备以及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739254A (zh) * 2009-12-31 2010-06-16 山东中创软件商用中间件股份有限公司 一种实现多平台通信组件复用的方法及装置
US20140149582A1 (en) * 2012-11-23 2014-05-29 Mediatek Inc. Methods for automatically managing installed applications and determining application recommendation result based on auxiliary information and related computer readable media
CN104333585A (zh) * 2014-10-30 2015-02-04 中南大学 一种分布式环境下依赖性程序文件集的传输优化调度方法
CN108279905A (zh) * 2018-01-04 2018-07-13 武汉斗鱼网络科技有限公司 一种组件中引入库文件的方法及装置
CN109542450A (zh) * 2018-11-08 2019-03-29 国网河南省电力公司电力科学研究院 智能变电站过程层智能组件实现方法及装置
CN110990023A (zh) * 2019-12-16 2020-04-10 上海钧正网络科技有限公司 aar文件的依赖关系上传方法、装置、存储介质及电子设备
CN111045717A (zh) * 2019-11-05 2020-04-21 北京奇艺世纪科技有限公司 获取项目依赖包的方法、装置、计算机设备及存储介质
CN111142895A (zh) * 2019-11-26 2020-05-12 叮当快药科技集团有限公司 基于svn模块的项目中组件的同步更新方法和系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739254A (zh) * 2009-12-31 2010-06-16 山东中创软件商用中间件股份有限公司 一种实现多平台通信组件复用的方法及装置
US20140149582A1 (en) * 2012-11-23 2014-05-29 Mediatek Inc. Methods for automatically managing installed applications and determining application recommendation result based on auxiliary information and related computer readable media
CN104333585A (zh) * 2014-10-30 2015-02-04 中南大学 一种分布式环境下依赖性程序文件集的传输优化调度方法
CN108279905A (zh) * 2018-01-04 2018-07-13 武汉斗鱼网络科技有限公司 一种组件中引入库文件的方法及装置
CN109542450A (zh) * 2018-11-08 2019-03-29 国网河南省电力公司电力科学研究院 智能变电站过程层智能组件实现方法及装置
CN111045717A (zh) * 2019-11-05 2020-04-21 北京奇艺世纪科技有限公司 获取项目依赖包的方法、装置、计算机设备及存储介质
CN111142895A (zh) * 2019-11-26 2020-05-12 叮当快药科技集团有限公司 基于svn模块的项目中组件的同步更新方法和系统
CN110990023A (zh) * 2019-12-16 2020-04-10 上海钧正网络科技有限公司 aar文件的依赖关系上传方法、装置、存储介质及电子设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JENS NICOLAY等: "determining dynamic coupling in JavaScript using object type interface", 《2013 IEEE 13TH INTERNATIONAL WORKING CONFERENCE ON SOURCE CODE ANALYSIS AND MANIPULATION(SCAM)》, pages 126 - 135 *
苟虹雨: "基于Android平台的组件化即时通信系统的设计与实现", 《CNKI优秀硕士学位论文全文库 信息科技辑》, no. 03, pages 138 - 885 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114036769A (zh) * 2021-11-18 2022-02-11 中国航空无线电电子研究所 面向航电系统物理架构的功能部署方案生成方法及装置
CN114036769B (zh) * 2021-11-18 2023-09-08 中国航空无线电电子研究所 面向航电系统物理架构的功能部署方案生成方法及装置
CN114816393A (zh) * 2022-05-18 2022-07-29 北京百度网讯科技有限公司 信息生成方法、装置、设备以及存储介质
CN114816393B (zh) * 2022-05-18 2023-12-19 北京百度网讯科技有限公司 信息生成方法、装置、设备以及存储介质

Also Published As

Publication number Publication date
CN112256247B (zh) 2023-07-28

Similar Documents

Publication Publication Date Title
WO2020155777A1 (zh) Ui自动化功能测试方法、测试装置、测试设备及存储介质
CA2244293C (en) A process and apparatus for tracing software entities in a distributed system
US20030093420A1 (en) Method and system for retrieving sharable information using a hierarchically dependent directory structure
US8839107B2 (en) Context based script generation
EP0501613A2 (en) Heterogeneous software configuration management apparatus
CN108897547B (zh) 一种软件自动化部署方法及装置
EP4009162A1 (en) Code change method and device
US11262983B2 (en) Services integration in an integrated development environment
CN112256247B (zh) 模块组件的依赖处理方法、装置、计算机设备及存储介质
CN111104304A (zh) 多任务场景性能测试方法、存储介质、电子设备及系统
CN112905441A (zh) 测试用例生成方法、测试方法、装置及设备
US7966600B2 (en) Distributed resource understanding tool management
CN107870852B (zh) 一种测试方法及装置
CN114020840A (zh) 一种数据处理方法、装置、服务器、存储介质及产品
CN106815010B (zh) 一种操作数据库的方法及装置
CN106682210B (zh) 日志文件查询方法及装置
CN117234582A (zh) 一种项目代码处理方法、装置、电子设备及存储介质
CN114153547B (zh) 管理页面显示方法及装置
CN114443294B (zh) 大数据服务组件部署方法、系统、终端及存储介质
CN110659030B (zh) Unity项目编译方法、系统、计算机设备及存储介质
CN114936152A (zh) 应用测试方法及设备
CN111124386B (zh) 基于Unity的动画事件处理方法、装置、设备和存储介质
CN112464596B (zh) 回归测试方法、系统、设备及可读存储介质
CN113741966A (zh) 一种Kickstart文件转换的方法、系统、设备和存储介质
WO2024021952A1 (zh) 一种共享方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant