CN113535178A - 代码包的引用方法及装置 - Google Patents
代码包的引用方法及装置 Download PDFInfo
- Publication number
- CN113535178A CN113535178A CN202010284657.0A CN202010284657A CN113535178A CN 113535178 A CN113535178 A CN 113535178A CN 202010284657 A CN202010284657 A CN 202010284657A CN 113535178 A CN113535178 A CN 113535178A
- Authority
- CN
- China
- Prior art keywords
- code
- code package
- version
- package
- attribute information
- 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
Links
- 238000007430 reference method Methods 0.000 title claims abstract description 6
- 238000000034 method Methods 0.000 claims abstract description 295
- 230000015654 memory Effects 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 14
- 238000004891 communication Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 abstract description 9
- 238000005516 engineering process Methods 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 11
- 238000013461 design Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 230000009191 jumping Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000008676 import Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种代码包的引用方法及装置,涉及计算机技术领域,能够解决脚本代码和引用的代码包存在版本冲突的问题。该方法包括:计算机设备解析脚本代码,确定脚本代码所引用的第一代码包的名称和第一方法的属性信息;根据第一代码包的名称,查找到M个版本的第一代码包;根据第一方法的属性信息,从M个版本的第一代码包中,确定目标版本的第一代码包;指示脚本代码引用目标版本的第一代码包。本申请实施例用于引用代码包的过程中。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种代码包的引用方法及装置。
背景技术
在软件开发过程中,为了减少重复劳动,提高代码开发效率,开发者会将自己实现的常用功能封装为代码包公开给其他开发者调用,使得其他开发者只需要了解代码包的输入接口和输出接口就可以直接引用,以快速实现业务开发。
然而,每一个代码包是由不同的开发者根据自己的需求独立开发的,开发者会根据需求增加新版本的代码包,改变新版本的代码包中的脚本代码(例如在代码包中新增一个方法或者删除一个方法)。因此,在开发过程中,脚本代码会因为引用错误版本的代码包(该错误版本的代码包不包含脚本代码所调用的方法),导致脚本代码无法正常跳转至该方法,造成脚本代码运行异常的问题。
发明内容
本申请提供一种代码包的引用方法及装置,用于解决如何避免引用错误版本的代码包,导致脚本代码无法正常运行的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请提供一种代码包的引用方法,该方法包括:
计算机设备解析脚本代码,确定脚本代码所引用的第一代码包的名称和第一方法的属性信息;根据第一代码包的名称,查找到M个版本的第一代码包,M为正整数;根据第一方法的属性信息,从M个版本的第一代码包中,确定目标版本的第一代码包,目标版本的第一代码包包括第一方法;指示脚本代码引用目标版本的第一代码包。
基于上述技术方案,计算机设备可以从M个版本的第一代码包中确定目标版本的第一代码包(该目标版本的第一代码包包括第一方法),解决了计算机设备不能确定哪个版本的第一代码包存在第一方法,进而无法确定目标版本的第一代码包的问题。并且,由于目标版本的第一代码包包括第一方法,因此脚本代码引用目标版本的第一代码包,可以实现脚本代码正常跳转至第一代码包中的第一方法中,使得脚本代码能够正常运行。
一种可能的设计中,检查第i个版本的第一代码包是否包含属性信息与第一方法的属性信息相同的方法,第i个版本为M个版本中的任意一个版本,i为小于等于M的正整数;若第i个版本的第一代码包包含属性信息与第一方法的属性信息相同的方法,则确定第i个版本的第一代码包为目标版本的第一代码包。
一种可能的设计中,第一方法的属性信息包括第一方法的名称;若M个版本的第一代码包均不包括属性信息与第一方法的属性信息相同的方法,则计算N个方法中每一个方法与第一方法的名称相似度,名称相似度用于指示两个方法在名称上的相似程度,N个方法为M个版本的第一代码包所包括的全部方法;从N个方法中,确定名称相似度最高的方法;以包含名称相似度最高的方法的第一代码包作为目标版本的第一代码包。
一种可能的设计中,该代码包的引用方法还包括:确定第一方法所调用的第二代码包的名称和第二方法的属性信息;根据第二代码包的名称,确定P个版本的第二代码包,P为正整数;根据第二方法的属性信息,从P个版本的第二代码包中,确定引用版本的第二代码包;引用版本的第二代码包包括所述第二方法;指示脚本代码引用引用版本的第二代码包。
第二方面,本申请提供一种代码包的引用装置,该装置包括:
解析单元,用于解析脚本代码,确定脚本代码所引用的第一代码包的名称和第一方法的属性信息;处理单元,用于根据第一代码包的名称,查找到M个版本的第一代码包,M为正整数;根据第一方法的属性信息,从M个版本的第一代码包中,确定目标版本的第一代码包,目标版本的第一代码包包括第一方法;引用单元,用于指示脚本代码引用目标版本的第一代码包。
一种可能的设计中,处理单元,还用于检查第i个版本的第一代码包是否包含属性信息与第一方法的属性信息相同的方法,第i个版本为M个版本中的任意一个版本,i为小于等于M的正整数;若第i个版本的第一代码包包含属性信息与第一方法的属性信息相同的方法,则确定第i个版本的第一代码包为目标版本的第一代码包。
一种可能的设计中,处理单元,还用于若M个版本的第一代码包均不包括属性信息与第一方法的属性信息相同的方法,则计算N个方法中每一个方法与第一方法的名称相似度,名称相似度用于指示两个方法在名称上的相似程度,N个方法为M个版本的第一代码包所包括的全部方法;从N个方法中,确定名称相似度最高的方法;以包含名称相似度最高的方法的第一代码包作为目标版本的第一代码包。
一种可能的设计中,解析单元,还用确定第一方法所调用的第二代码包的名称和第二方法的属性信息;处理单元,还用于根据第二代码包的名称,确定P个版本的第二代码包,P为正整数;根据第二方法的属性信息,从P个版本的第二代码包中,确定引用版本的第二代码包;引用版本的第二代码包包括所述第二方法。引用单元,还用于指示脚本代码引用引用版本的第二代码包。
第三方面,本申请提供了一种计算机设备,该计算机设备包括:处理器和通信接口;通信接口和处理器耦合,处理器用于运行计算机程序或指令,以实现如第一方面和第一方面的任一种可能的实现方式中所描述的代码包的引用方法。
第四方面,本申请提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当指令在计算机上运行时,使得计算机执行上述第一方面和第一方面的任一种可能的实现方式中所描述的代码包的引用方法。
第五方面,本申请提供一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述第一方面和第一方面的任一种可能的实现方式中所描述的代码包的引用方法。
第六方面,本申请提供一种芯片,芯片包括处理器和通信接口,通信接口和处理器耦合,处理器用于运行计算机程序或指令,以实现如第一方面和第一方面的任一种可能的实现方式中所描述的代码包的引用方法。
上述方案中,代码包的引用装置、计算机设备、计算机存储介质、计算机程序产品或者芯片所能解决的技术问题以及实现的技术效果可以参见上述第一方面所解决的技术问题以及技术效果,在此不再赘述。
附图说明
图1为本申请实施例提供的一种代码包的引用方法的流程示意图;
图2为本申请实施例提供的另一种代码包的引用方法的流程示意图;
图3为本申请实施例提供的另一种代码包的引用方法的流程示意图;
图4为本申请实施例提供的另一种代码包的引用方法的流程示意图;
图5为本申请实施例提供的一种代码包的引用装置的结构示意图;
图6为本申请实施例提供的另一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
本文中字符“/”,一般表示前后关联对象是一种“或者”的关系。例如,A/B可以理解为A或者B。
本申请的说明书和权利要求书中的术语“第一”和“第二”是用于区别不同的对象,而不是用于描述对象的特定顺序。
此外,本申请的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或模块的过程、方法、系统、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括其他没有列出的步骤或模块,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或模块。
另外,在本申请实施例中,“示例性的”、或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”、或者“例如”等词旨在以具体方式呈现概念。
本申请实施例所提供的技术方案可以由计算机设备来执行。计算机设备为安装有编程工具的设备,该编程工具支持使用具有代码包共享平台的编程语言,存在对代码包做引用声明的编程语言,以及存在引用方法的编程语言(例如Java语言、Python语言)进行编程,例如,该编程工具可以为IntelliJ IDEA、eclipse。该计算机设备可以存储开发人员撰写的脚本代码,或者自动生成脚本软件生成的脚本代码。其中,该计算机设备可以为平板电脑、笔记本电脑、台式计算机、便携式计算机等,本申请实施例对此不做限定。
如图1所示,为本申请实施例提供的一种代码包的引用方法,该方法包括以下步骤:
S101、计算机设备解析脚本代码,确定脚本代码所引用的第一代码包的名称和第一方法的属性信息。
其中,该脚本代码可以为开发人员撰写的脚本代码,或者为自动生成脚本软件生成的脚本代码,本申请实施例对此不做限定。
该脚本代码包括引用声明和第一方法的属性信息。引用声明包括引用词(例如import)和脚本代码引用的代码包的名称。例如,引用声明可以为可以为:importPackageA,引用词为import,脚本代码引用的代码包的名称为PackageA。第一方法的属性信息包括:第一方法的名称、第一方法的参数类型、第一方法的参数数量、第一方法的返回值类型。
一种可能的实现方式,计算机设备解析脚本代码,确定引用声明和第一方法的属性信息。之后,计算机设备根据引用声明,确定脚本代码引用的第一代码包的名称。
S102、计算机设备根据第一代码包的名称,查找到M个版本的第一代码包。
其中,M为正整数。
一种可能的实现方式,计算机设备读取环境变量,根据第一代码包的名称,查找到M个版本的第一代码包。该环境变量包括M个版本的第一代码包。
需要说明的是,由于代码包中的方法会随着技术的更新或者需求的改变而发生改变,因此计算机设备会保存不同版本的代码包,以达到一个代码包的不同版本可以实现不同需求的目的。
S103、计算机设备根据第一方法的属性信息,从M个版本的第一代码包中,确定目标版本的第一代码包。
其中,目标版本的第一代码包包括第一方法。
S104、计算机设备指示脚本代码引用目标版本的第一代码包。
可以理解的是,由于该目标版本的第一代码包包括第一方法,因此计算机设备指示脚本代码引用目标版本的第一代码包,可以实现脚本代码正常跳转至第一代码包中的第一方法中。
基于图1所示的技术方案,计算机设备可以从M个版本的第一代码包中确定目标版本的第一代码包(该目标版本的第一代码包包括第一方法),解决了计算机设备不能确定哪个版本的第一代码包存在第一方法,进而无法确定目标版本的第一代码包的问题。并且,由于目标版本的第一代码包包括第一方法,因此脚本代码引用目标版本的第一代码包,可以实现脚本代码正常跳转至第一代码包中的第一方法中,使得脚本代码能够正常运行。
如图2所示,步骤S103可以具体实现为以下步骤:
S201、计算机设备检查第i个版本的第一代码包是否包含属性信息与第一方法的属性信息相同的方法。
其中,第i个版本为M个版本中的任意一个版本,i为小于等于M的正整数。
需要说明的是,方法的属性信息与第一方法的属性信息相同,是指该方法的名称、参数类型、参数数量、以及返回值类型均与第一方法的属性信息相同。
示例性的,第一方法的属性信息为:inta=new Le().Function1(3,5)。则第一方法的名称为Function1,第一方法的参数为整数类型(int)的3和5,第一方法的返回值类型为int。
计算机设备从1.0版本的第一代码包解析出该版本代码包中方法的属性信息。1.0版本的第一代码包的方法如下:
其中,1.0版本的第一代码包中的方法的名称为Function1,方法的参数类型均为整数类型,方法的参数数量为2,放的返回值类型为int。因此,1.0版本的第一代码包包含属性信息与第一方法的属性信息相同的方法。
S202、若第i个版本的第一代码包包含属性信息与第一方法的属性信息相同的方法,则计算机设备确定第i个版本的第一代码包为目标版本的第一代码包。
基于图2所示的技术方案,计算机设备通过判断第i个版本的第一代码包是否包含属性信息与第一方法的属性信息相同的方法,可以选择不同的方式确定目标版本的第一代码包,解决了计算机设备不能确定哪个版本的第一代码包包含脚本代码所调用的方法,进而无法确定目标版本的第一代码包的问题。并且,由于目标版本的第一代码包包含有脚本代码所调用的方法,因此脚本代码引用目标版本的第一代码包,可以实现脚本代码正常跳转至第一代码包中的方法,使得脚本代码能够正常运行。
若M个版本的第一代码包均不包含属性信息与第一方法的属性信息相同的方法,则如图3所示,步骤S103还可以具体实现为:
S301、计算机设备计算N个方法中每一个方法与第一方法的名称相似度。
其中,名称相似度用于指示两个方法在名称上的相似程度,N个方法为M个版本的第一代码包所包括的全部方法。
一种可能的实现方式,计算机设备从M个版本的第一代码包中解析出N个方法,计算N个方法中每一个方法与第一方法的名称相似度。
需要说明的是,两个方法的名称组成部分是否相同,两个方法的名称组成部分是否按照相同的顺序进行排列,以及字母的大小写等因素均会影响名称相似度。以下通过三个示例进行说明。
示例一,第一方法的名称为Function1,方法2的名称为Function2,计算机设备计算方法2与方法1的名称相似度为8/9。
示例二,方法1的名称为Function1,方法2的名称为F2unction,计算机设备计算方法2与方法1的名称相似度为1/9。
示例三,方法1的名称为Function1,方法2的名称为FuncTion2,计算机设备计算方法2与方法1的名称相似度为7/9。
可以理解的是,名称相似度需要考虑两个方法的名称组成部分是否相同等多个因素,使得计算机设备能够获取到与第一方法的名称相似度更高的方法。
S302、计算机设备从N个方法中,确定名称相似度最高的方法。
一种可能的实现方式,计算机设备比较N个名称相似度,确定名称相似度最高的方法。
示例性的,表1示出了第一代码包(例如PackageA)有2个版本,2个版本的第一代码包包含4个方法。表1中的一行是一条数据,用于表示每个版本的PackageA所包含的方法。第一方法的名称为Function1。
表1
其中,Function方法与Function1方法的名称相似度为8/9,Funi1方法与Function1方法的名称相似度为3/9,Funct方法与Function1方法的名称相似度为5/9,Funaaaaa1方法与Function1方法的名称相似度为4/9。8/9>5/9>4/9>3/9。也就是说,Function方法与Function1方法的名称相似度最高。
S303、计算机设备以包含名称相似度最高的方法的第一代码包作为目标版本的第一代码包。
可以理解的是,在第一方法的属性信息有误,计算机设备无法从M个版本的第一代码包中获取到属性信息与第一方法的属性信息相同的方法时,计算机设备降低查找条件,根据名称相似度确定与第一方法最相似的方法,能够使计算机设备确定目标版本的第一代码包。
基于图3所示的技术方案,在M个版本的第一代码包均不包括属性信息与第一方法的属性信息相同的方法时,计算机设备降低查找条件,查找与第一方法相似的方法,确定名称相似度最高的方法(也就是与第一方法相似度最高的方法),避免了第一方法的属性信息有误时,无法确定目标版本的第一代码包的问题。
计算机设备在确定目标版本的第一代码包后,第一代码包中的脚本代码还会引用包含第二方法的引用版本的第二代码包。而第二代码包具有多个版本,若无法确定第二代码包的引用版本,计算机设备仍存在引用错误版本的代码包的风险,导致脚本代码无法正常跳转,造成脚本代码运行异常的问题。
为了避免引用错误版本的代码包,导致脚本代码无法正常跳转的问题,如图4所示,为本申请实施例提供的一种代码包的引用方法,该方法包括以下步骤:
S401、计算机设备确定第一方法所调用的第二代码包的名称和第二方法的属性信息。
一种可能的实现方式,计算机设备解析目标版本的第一代码包,确定第一方法所调用的第二代码包的名称和第二方法的属性信息。
其中,目标版本的第一代码包包括第二代码包的名称和第二方法的属性信息。第二方法的属性信息包括:第二方法的名称、第二方法的参数类型、第二方法的参数数量、第二、方法的返回值类型。
S402、计算机设备根据第二代码包的名称,确定P个版本的第二代码包。
其中,P为正整数。
一种可能的实现方式,计算机设备读取环境变量,根据第二代码包的名称,查找到P个版本的第二代码包。该环境变量包括计算机设备所安装的P个版本的第二代码包。
S403、计算机设备根据第二方法的属性信息,从P个版本的第二代码包中,确定引用版本的第二代码包。
其中,引用版本的第二代码包包括第二方法。
一种可能的实现方式,计算机设备检查第k个版本的第二代码包是否包含属性信息与第二方法的属性信息相同的方法。在第k个版本的第二代码包包含属性信息与第二方法的属性信息相同的方法时,计算机设备确定第k个版本的第二代码包为引用版本的第二代码包。其中,第k个版本为P个版本中的一个版本。
其具体实现可以参考步骤S201-S202的描述,在此不再赘述。
另一种可能的实现方式,在P个版本的第二代码包均不包含属性信息与第二方法的属性信息相同的方法时,计算机设备计算Q个方法中每一个方法与第二方法的名称相似度。计算机设备从Q个方法中,确定名称相似度最高的方法。计算机设备以包含名称相似度最高的方法的第二代码包作为引用版本的第二代码包。其中,Q个方法为P个版本的第二代码包所包括的全部方法。
其具体实现可以参考步骤S301-S303的描述,在此不再赘述。
S404、计算机设备指示脚本代码引用引用版本的第二代码包。
可以理解的是,由于该引用版本的第二代码包包括第二方法,因此计算机设备指示脚本代码引用引用版本的第二代码包,可以实现脚本代码从第一方法中正常跳转至引用版本的第二代码包中的第二方法。
基于图4所示的技术方案,计算机设备可以从P个版本的第二代码包中确定引用版本的第二代码包(该引用版本的第二代码包包括第二方法),解决了计算机设备不能确定哪个版本的第二代码包存在第二方法,进而无法确定引用版本的第二代码包的问题。并且,由于目标版本的第一代码包包括第一方法,因此脚本代码引用目标版本的第一代码包,可以实现脚本代码正常跳转至第一代码包中的第一方法中,使得脚本代码能够正常运行。
需要说明的是,图4所示的实施例是对第一代码包引用第二代码包(引用版本的第二代码包)的过程,进行具体说明。然而,第二代码包中的脚本代码还可能引用第三代码包中的第三方法,而计算机设备不能确定哪个版本的第三代码包存在第三方法。也就是说,代码包引用代码包时,均会存在无法确定引用版本的代码包的问题。因此,在代码包引用代码包时,均可以参考图4所示的实施例。
本申请实施例可以根据上述方法示例对服务器进行功能模块或者功能单元的划分,例如,可以对应各个功能划分各个功能模块或者功能单元,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块或者功能单元的形式实现。其中,本申请实施例中对模块或者单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
如图5所示,本发明实施例提供了一种代码包的引用装置,包括:
解析单元101,用于解析脚本代码,确定脚本代码所引用的第一代码包的名称和第一方法的属性信息;
处理单元102,用于根据第一代码包的名称,查找到M个版本的第一代码包,M为正整数;根据第一方法的属性信息,从M个版本的第一代码包中,确定目标版本的第一代码包,目标版本的第一代码包包括第一方法;
引用单元103,用于指示脚本代码引用目标版本的第一代码包。
可选的,处理单元102,还用于检查第i个版本的第一代码包是否包含属性信息与第一方法的属性信息相同的方法,第i个版本为M个版本中的任意一个版本,i为小于等于M的正整数;若第i个版本的第一代码包包含属性信息与第一方法的属性信息相同的方法,则确定第i个版本的第一代码包为目标版本的第一代码包。
可选的,处理单元102,还用于若M个版本的第一代码包均不包括属性信息与第一方法的属性信息相同的方法,则计算N个方法中每一个方法与第一方法的名称相似度,名称相似度用于指示两个方法在名称上的相似程度,N个方法为M个版本的第一代码包所包括的全部方法;从N个方法中,确定名称相似度最高的方法;以包含名称相似度最高的方法的第一代码包作为目标版本的第一代码包。
可选的,解析单元101,还用确定第一方法所调用的第二代码包的名称和第二方法的属性信息;
处理单元102,还用于根据第二代码包的名称,确定P个版本的第二代码包,P为正整数;根据第二方法的属性信息,从P个版本的第二代码包中,确定引用版本的第二代码包;引用版本的第二代码包包括所述第二方法;
引用单元103,还用于指示脚本代码引用引用版本的第二代码包。
图6示出了上述实施例中所涉及的计算机设备的又一种可能的结构。该计算机设备包括:处理器201和通信接口202。处理器201用于对装置的动作进行控制管理,例如,执行上述方法实施例中所示的方法流程中的各个步骤,和/或用于执行本文所描述的技术的其它过程。通信接口202用于支持该计算机设备与其他网络实体的通信。计算机设备还可以包括存储器203和总线204,存储器203用于存储装置的程序代码和数据。
其中,上述处理器201可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,单元和电路。该处理器可以是中央处理器,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,单元和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
存储器203可以包括易失性存储器,例如随机存取存储器;该存储器也可以包括非易失性存储器,例如只读存储器,快闪存储器,硬盘或固态硬盘;该存储器还可以包括上述种类的存储器的组合。
总线204可以是扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。总线204可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得该计算机执行上述方法实施例中的代码包的引用方法。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得该计算机执行上述方法实施例所示的方法流程中的代码包的引用方法。
其中,计算机可读存储介质,例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、寄存器、硬盘、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合、或者本领域熟知的任何其它形式的计算机可读存储介质。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于特定用途集成电路(Application Specific Integrated Circuit,ASIC)中。在本申请实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
由于本发明的实施例中的计算机设备、计算机可读存储介质、计算机程序产品可以应用于上述方法,因此,其所能获得的技术效果也可参考上述方法实施例,本发明实施例在此不再赘述。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (10)
1.一种代码包的引用方法,其特征在于,所述方法包括:
解析脚本代码,确定所述脚本代码所引用的第一代码包的名称和第一方法的属性信息;
根据所述第一代码包的名称,查找到M个版本的第一代码包,M为正整数;
根据所述第一方法的属性信息,从所述M个版本的第一代码包中,确定目标版本的第一代码包,所述目标版本的第一代码包包括所述第一方法;
指示所述脚本代码引用所述目标版本的第一代码包。
2.根据权利要求1所述的代码包的引用方法,其特征在于,所述根据所述第一方法的属性信息,从所述M个版本的第一代码包中,确定目标版本的第一代码包,包括:
检查第i个版本的第一代码包是否包含属性信息与所述第一方法的属性信息相同的方法,所述第i个版本为所述M个版本中的任意一个版本,i为小于等于M的正整数;
若所述第i个版本的第一代码包包含属性信息与所述第一方法的属性信息相同的方法,则确定所述第i个版本的第一代码包为所述目标版本的第一代码包。
3.根据权利要求2所述的代码包的引用方法,其特征在于,所述第一方法的属性信息包括所述第一方法的名称;
所述根据所述第一方法的属性信息,从所述M个版本的第一代码包中,确定目标版本的第一代码包,包括:
若所述M个版本的第一代码包均不包括属性信息与所述第一方法的属性信息相同的方法,则计算N个方法中每一个方法与所述第一方法的名称相似度,所述名称相似度用于指示两个方法在名称上的相似程度,所述N个方法为所述M个版本的第一代码包所包括的全部方法;
从所述N个方法中,确定名称相似度最高的方法;
以包含所述名称相似度最高的方法的第一代码包作为所述目标版本的第一代码包。
4.根据权利要求1至3任一项所述的代码包的引用方法,其特征在于,所述方法还包括:
确定所述第一方法所调用的第二代码包的名称和第二方法的属性信息;
根据所述第二代码包的名称,确定P个版本的第二代码包,P为正整数;
根据所述第二方法的属性信息,从所述P个版本的第二代码包中,确定引用版本的第二代码包;所述引用版本的第二代码包包括所述第二方法;
指示所述脚本代码引用所述引用版本的第二代码包。
5.一种代码包的引用装置,其特征在于,所述装置包括:
解析单元,用于解析脚本代码,确定所述脚本代码所引用的第一代码包的名称和第一方法的属性信息;
处理单元,用于根据所述第一代码包的名称,查找到M个版本的第一代码包,M为正整数;根据所述第一方法的属性信息,从所述M个版本的第一代码包中,确定目标版本的第一代码包,所述目标版本的第一代码包包括所述第一方法;
引用单元,用于指示所述脚本代码引用所述目标版本的第一代码包。
6.根据权利要求5所述的代码包的引用装置,其特征在于,
所述处理单元,还用于检查第i个版本的第一代码包是否包含属性信息与所述第一方法的属性信息相同的方法,所述第i个版本为所述M个版本中的任意一个版本,i为小于等于M的正整数;若所述第i个版本的第一代码包包含属性信息与所述第一方法的属性信息相同的方法,则确定所述第i个版本的第一代码包为所述目标版本的第一代码包。
7.根据权利要求6所述的代码包的引用装置,其特征在于,
所述处理单元,还用于若所述M个版本的第一代码包均不包括属性信息与所述第一方法的属性信息相同的方法,则计算N个方法中每一个方法与所述第一方法的名称相似度,所述名称相似度用于指示两个方法在名称上的相似程度,所述N个方法为所述M个版本的第一代码包所包括的全部方法;从所述N个方法中,确定名称相似度最高的方法;以包含所述名称相似度最高的方法的第一代码包作为所述目标版本的第一代码包。
8.根据权利要求5-7任一项所述的代码包的引用装置,其特征在于,
所述解析单元,还用确定所述第一方法所调用的第二代码包的名称和第二方法的属性信息;
所述处理单元,还用于根据所述第二代码包的名称,确定P个版本的第二代码包;根据所述第二方法的属性信息,从所述P个版本的第二代码包中,确定引用版本的第二代码包;所述引用版本的第二代码包包括所述第二方法;
所述引用单元,还用于指示所述脚本代码引用所述引用版本的第二代码包。
9.一种计算机设备,其特征在于,包括:处理器、存储器和通信接口;其中,所述通信接口和所述处理器耦合,当该计算机设备运行时,处理器执行该存储器存储的该计算机执行指令,以实现上述权利要求1-4任一项中的代码包的引用方法。
10.一种计算机可读存储介质,计算机可读存储介质中存储有指令,其特征在于,当计算机执行该指令时,该计算机执行上述权利要求1-4任一项中的代码包的引用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010284657.0A CN113535178B (zh) | 2020-04-13 | 2020-04-13 | 代码包的引用方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010284657.0A CN113535178B (zh) | 2020-04-13 | 2020-04-13 | 代码包的引用方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113535178A true CN113535178A (zh) | 2021-10-22 |
CN113535178B CN113535178B (zh) | 2024-12-10 |
Family
ID=78119855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010284657.0A Active CN113535178B (zh) | 2020-04-13 | 2020-04-13 | 代码包的引用方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113535178B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050081184A1 (en) * | 2003-09-30 | 2005-04-14 | International Business Machines Corporation | Multi-attribute dynamic link library packaging |
US20130007028A1 (en) * | 2011-06-29 | 2013-01-03 | International Business Machines Corporation | Discovering related files and providing differentiating information |
CN105446723A (zh) * | 2014-09-02 | 2016-03-30 | 国际商业机器公司 | 用于标识源代码版本之间的语义区别的方法和装置 |
US20160378445A1 (en) * | 2015-06-26 | 2016-12-29 | Mitsubishi Electric Corporation | Similarity determination apparatus, similarity determination method and similarity determination program |
WO2017151546A1 (en) * | 2016-03-01 | 2017-09-08 | 650 Industries, Inc. | Method and apparatus for loading multiple differing versions of a native library into a native environment |
CN109542779A (zh) * | 2018-11-12 | 2019-03-29 | 泰康保险集团股份有限公司 | 测试方法、装置和存储介质 |
US20190114166A1 (en) * | 2017-10-16 | 2019-04-18 | Western Digital Technologies, Inc. | Function tracking for source code files |
-
2020
- 2020-04-13 CN CN202010284657.0A patent/CN113535178B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050081184A1 (en) * | 2003-09-30 | 2005-04-14 | International Business Machines Corporation | Multi-attribute dynamic link library packaging |
US20130007028A1 (en) * | 2011-06-29 | 2013-01-03 | International Business Machines Corporation | Discovering related files and providing differentiating information |
CN105446723A (zh) * | 2014-09-02 | 2016-03-30 | 国际商业机器公司 | 用于标识源代码版本之间的语义区别的方法和装置 |
US20160378445A1 (en) * | 2015-06-26 | 2016-12-29 | Mitsubishi Electric Corporation | Similarity determination apparatus, similarity determination method and similarity determination program |
WO2017151546A1 (en) * | 2016-03-01 | 2017-09-08 | 650 Industries, Inc. | Method and apparatus for loading multiple differing versions of a native library into a native environment |
US20190114166A1 (en) * | 2017-10-16 | 2019-04-18 | Western Digital Technologies, Inc. | Function tracking for source code files |
CN109542779A (zh) * | 2018-11-12 | 2019-03-29 | 泰康保险集团股份有限公司 | 测试方法、装置和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113535178B (zh) | 2024-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107992307B (zh) | 一种函数编译方法及装置 | |
CN111443921A (zh) | web前端项目的分包部署方法、系统和计算机设备 | |
US11262986B2 (en) | Automatic software generation for computer systems | |
CN110502357A (zh) | 一种栈回溯方法、装置、介质和设备 | |
WO2020237508A1 (zh) | 一种断言验证代码绑定方法及装置 | |
WO2023207973A1 (zh) | 编译器测试方法、用例生成方法、装置及指令存储结构 | |
CN107797996B (zh) | 一种词条翻译方法及装置 | |
CN111240987B (zh) | 移植程序检测方法、装置、电子设备及计算机可读存储介质 | |
CN106201859A (zh) | 一种回归测试方法及系统 | |
WO2019227899A1 (zh) | 程序调用解耦 | |
CN106502707B (zh) | 代码生成方法及装置 | |
CN111352631B (zh) | 一种接口兼容性检测方法及装置 | |
CN107810474B (zh) | 大规模源代码存储库中的自动导入及依赖性 | |
CN113535178B (zh) | 代码包的引用方法及装置 | |
CN105867886A (zh) | 一种写表格的方法及装置 | |
CN112947941A (zh) | 一种添加异常处理代码的方法和装置 | |
CN103235745B (zh) | 一种地址冲突检测方法及装置 | |
CN110941443A (zh) | 修改sdk中文件名的方法、装置及电子设备 | |
CN110244954A (zh) | 一种应用程序的编译方法及设备 | |
WO2023197851A9 (zh) | 异常组件的识别方法、装置、设备、存储介质及程序产品 | |
CN116578282A (zh) | 代码生成方法、装置、电子设备及介质 | |
CN113986744A (zh) | 一种分库分表组件的测试方法、装置及存储介质 | |
US9063758B2 (en) | Population of dynamic objects representing static namespace hierarchies | |
CN112445390B (zh) | 子菜单选择方法、装置及终端设备 | |
CN111726373B (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 |