CN115202714A - 解决组件版本冲突的方法、设备和存储介质 - Google Patents

解决组件版本冲突的方法、设备和存储介质 Download PDF

Info

Publication number
CN115202714A
CN115202714A CN202110321895.9A CN202110321895A CN115202714A CN 115202714 A CN115202714 A CN 115202714A CN 202110321895 A CN202110321895 A CN 202110321895A CN 115202714 A CN115202714 A CN 115202714A
Authority
CN
China
Prior art keywords
component
information
components
application program
version
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.)
Pending
Application number
CN202110321895.9A
Other languages
English (en)
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.)
Jingdong Technology Holding Co Ltd
Original Assignee
Jingdong Technology Holding 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 Jingdong Technology Holding Co Ltd filed Critical Jingdong Technology Holding Co Ltd
Priority to CN202110321895.9A priority Critical patent/CN115202714A/zh
Priority to PCT/CN2021/140190 priority patent/WO2022199160A1/zh
Publication of CN115202714A publication Critical patent/CN115202714A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提出一种解决组件版本冲突的方法、设备和存储介质,其中,该方法包括:在获取到包括应用程序标识信息、为组件版号存在冲突的第一组件信息所设置的第一组件版本号的组件版本设置请求后,获取与第一组件信息对应的多个第一组件,并获取与应用程序标识信息对应的组件依赖配置文件,以及将组件依赖配置文件中多个第一组件对应的组件版本号均调整为第一组件版本号,以得到更新后的组件依赖配置文件,并根据更新后的组件依赖配置文件,编译应用程序标识信息对应的应用程序。由此,无需开发人员手动调整应用程序的代码来解决组件版本号冲突的问题,减少了开发者的操作,减少了开发时间,提高了开发效率。

Description

解决组件版本冲突的方法、设备和存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及解决组件版本冲突的方法、装置、电子设备和存储介质。
背景技术
目前,在基于组件化对应用程序进行开发的过程中,一个应用程序可能依赖多个组件,而一个组件可能存在多个版本。相关技术中,在对应用程序进行开发的过程中,为了可提高所开发的应用程序的运行的稳定性,需要对所开发应用程序中同一个组件是否有多个版本进行检查,并需要开发者人工对应用程序的程序代码进行调整,以将同一个组件的版本调整到一致,以解决版本冲突的问题。然而,上述方式在解决版本冲突的问题的过程中,用户的操作较多,解决冲突版本的成本较高,进而影响了开发应用程序的效率。
发明内容
本申请提出一种解决组件版本冲突的方法、装置、电子设备和存储介质。
本申请一方面实施例提出了一种解决组件版本冲突的方法,接收请求端的组件版本设置请求,其中,所述组件版本设置请求包括应用程序标识信息、为组件版本号存在冲突的第一组件信息所设置的第一组件版本号;获取与所述第一组件信息对应的多个第一组件;获取与所述应用程序标识信息对应的组件依赖配置文件;将所述组件依赖配置文件中所述多个第一组件对应的组件版本号均调整为所述第一组件版本号,以得到更新后的组件依赖配置文件;根据所述更新后的组件依赖配置文件,编译所述应用程序标识信息对应的应用程序。
在本申请的一个实施例中,所述接收请求端的组件版本设置请求之前,所述方法还包括:接收所述请求端的查询请求,其中,所述查询请求包括所述应用程序标识信息;从预设的数据库中,获取与所述应用程序标识信息对应的组件查询结果,其中,所述组件查询结果包括所述第一组件信息;将所述第一组件信息发送给所述请求端,以使得所述请求端上显示所述第一组件信息。
在本申请的一个实施例中,所述从预设的数据库中,获取与所述应用程序标识信息对应的组件查询结果,包括:从所述预设的数据库中,获取所述应用程序标识信息所标识的应用程序直接依赖的第二组件信息,其中,所述第二组件信息中包括多个第二组件各自对应的组件信息;针对每个第二组件,根据所述第二组件的组件信息,获取所述第二组件的第一组件依赖关系数据;根据所述第一组件依赖关系数据,确定组件版本号存在冲突的第三组件信息;根据各个所述组件的所述第三组件信息,生成所述第一组件信息。
在本申请的一个实施例中,所述根据所述第二组件的组件信息,获取所述第二组件的第一组件依赖关系数据,包括:获取所述第二组件所直接依赖的目标组件;获取所述目标组件所直接依赖的组件,直至对应组件所直接依赖的组件为空时结束;将所述第二组件以及所获取到的所有组件依次连接,以得到所述第二组件的第一组件依赖关系数据。
在本申请的一个实施例中,所述根据所述第一组件依赖关系数据,确定组件版本号存在冲突的第三组件信息,包括:对所述第一组件依赖关系数据中的各个组件,将组件标识相同的组件分为一组,以得到多组组件;判断每组组件中各个组件的组件版本号是否相同,并从所述多组组件中选出组件版本号不相同的目标组;根据所述目标组中组件版本号不同的组件,生成所述第三组件信息。
在本申请的一个实施例中,所述方法还包括:接收所述请求端的组件添加请求,其中,所述组件添加请求包括所述应用程序标识信息以及待添加组件信息;获取与所述应用程序标识信息对应的组件依赖关系数据;根据所述待添加组件信息,调整所述组件依赖关系数据;将调整后的组件依赖关系数据保存到所述组件依赖配置文件。
在本申请的一个实施例中,所述组件添加请求还包括所述待添加组件信息所对应的组件版本号,所述方法还包括:查询所述组件依赖关系数据中是否存在所述待添加组件信息对应的目标组件;如果存在与所述待添加组件信息对应的目标组件,则确定所述目标组件的组件版本号与所述待添加组件信息所标识组件的组件版本号是否相同;如果不同,则根据所述目标组件和所述待添加组件信息所标识组件的组件信息,调整所述组件信息。
本申请实施例的解决组件版本冲突的方法,在获取到包括应用程序标识信息、为组件版本号存在冲突的第一组件信息所设置的第一组件版本号的组件版本设置请求后,获取与第一组件信息对应的多个第一组件,并获取与应用程序标识信息对应的组件依赖配置文件,以及将组件依赖配置文件中多个第一组件对应的组件版本号均调整为第一组件版本号,以得到更新后的组件依赖配置文件,并根据更新后的组件依赖配置文件,编译应用程序标识信息对应的应用程序。由此,使得开发人员通过请求端发送一个组件版本设置请求,即可对组件版本号存在冲突的组件信息的组件版本号进行调整,从而无需开发人员手动调整应用程序的代码来解决组件版本号冲突的问题,减少了开发者的操作,减少了开发时间,提高了开发效率。
本申请另一方面实施例提出了一种解决组件版本冲突的装置,所述装置包括:第一接收模块,用于接收请求端的组件版本设置请求,其中,所述组件版本设置请求包括应用程序标识信息、为组件版本号存在冲突的第一组件信息所设置的第一组件版本号;第一获取模块,用于获取与所述第一组件信息对应的多个第一组件;第二获取模块,用于获取与所述应用程序标识信息对应的组件依赖配置文件;配置文件更新模块,用于将所述组件依赖配置文件中所述多个第一组件对应的组件版本号均调整为所述第一组件版本号,以得到更新后的组件依赖配置文件;编译模块,用于根据所述更新后的组件依赖配置文件,编译所述应用程序标识信息对应的应用程序。
在本申请的一个实施例中,所述装置还包括:第二接收模块,用于接收所述请求端的查询请求,其中,所述查询请求包括所述应用程序标识信息;第三获取模块,用于从预设的数据库中,获取与所述应用程序标识信息对应的组件查询结果,其中,所述组件查询结果包括所述第一组件信息;发送模块,用于将所述第一组件信息发送给所述请求端,以使得所述请求端上显示所述第一组件信息。
在本申请的一个实施例中,所述第三获取模块,包括:第一获取单元,用于从所述预设的数据库中,获取所述应用程序标识信息所标识的应用程序直接依赖的第二组件信息,其中,所述第二组件信息中包括多个第二组件各自对应的组件信息;第二获取单元,用于针对每个第二组件,根据所述第二组件的组件信息,获取所述第二组件的第一组件依赖关系数据;确定单元,用于根据所述第一组件依赖关系数据,确定组件版本号存在冲突的第三组件信息;生成单元,用于根据各个所述第二组件的所述第三组件信息,生成所述第一组件信息。
在本申请的一个实施例中,所述第二获取单元,具体用于:获取所述组件所直接依赖的目标组件;获取所述目标组件所直接依赖的组件,直至对应组件所直接依赖的组件为空时结束;将所述组件以及所获取到的所有组件依次连接,以得到所述组件的第一组件依赖关系数据。
在本申请的一个实施例中,所述确定单元,具体用于:对所述第一组件依赖关系数据中的各个组件,将组件标识相同的组件分为一组,以得到多组组件;判断每组组件中各个组件的组件版本号是否相同,并从所述多组组件中选出组件版本号不相同的目标组;根据所述目标组中组件版本号不同的组件,生成所述第四组件信息。
在本申请的一个实施例中,所述装置还包括:第三接收模块,用于接收所述请求端的组件添加请求,其中,所述组件添加请求包括所述应用程序标识信息以及待添加组件信息;第四获取模块,用于获取与所述应用程序标识信息对应的组件依赖关系数据;第一调整模块,用于根据所述待添加组件信息,调整所述组件依赖关系数据;保存模块,用于将调整后的组件依赖关系数据保存到所述组件依赖配置文件。
在本申请的一个实施例中,所述组件添加请求还包括所述待添加组件信息所对应的组件版本号,所述装置还包括:查询模块,用于查询所述组件依赖关系数据中是否存在所述待添加组件信息对应的目标组件;确定模块,用于如果存在与所述待添加组件信息对应的目标组件,则确定所述目标组件的组件版本号与所述待添加组件信息所标识组件的组件版本号是否相同;第二调整模块,用于如果不同,则根据所述目标组件和所述待添加组件信息所标识组件的组件信息,调整所述组件信息。
本申请实施例的解决组件版本冲突的装置,在获取到包括应用程序标识信息、为组件版本号存在冲突的第一组件信息所设置的第一组件版本号的组件版本设置请求后,获取与第一组件信息对应的多个第一组件,并获取与应用程序标识信息对应的组件依赖配置文件,以及将组件依赖配置文件中多个第一组件对应的组件版本号均调整为第一组件版本号,以得到更新后的组件依赖配置文件,并根据更新后的组件依赖配置文件,编译应用程序标识信息对应的应用程序。由此,使得开发人员通过请求端发送一个组件版本设置请求,即可对组件版本号存在冲突的组件信息的组件版本号进行调整,从而无需开发人员手动调整应用程序的代码来解决组件版本号冲突的问题,减少了开发者的操作,减少了开发时间,提高了开发效率。
本申请另一方面实施例提出了一种电子设备,包括:存储器,处理器;所述存储器中存储有计算机指令,当所述计算机指令被所述处理器执行时,实现本申请实施例的解决组件版本冲突的方法。
本申请另一方面实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本申请实施例公开的解决组件版本冲突的方法。
本申请另一方面实施例提出了一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时实现本申请实施例中的解决组件版本冲突的方法。
上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请一个实施例的解决组件版本冲突的方法的流程示意图。
图2是根据本申请另一个实施例的解决组件版本冲突的方法的流程示意图。
图3是根据本申请另一个实施例的解决组件版本冲突的方法的流程示意图。
图4是根据本申请另一个实施例的解决组件版本冲突的方法的流程示意图。
图5是根据本申请另一个实施例的解决组件版本冲突的方法的流程示意图。
图6是根据本申请另一个实施例的解决组件版本冲突的方法的流程示意图。
图7是根据本申请一个实施例的解决组件版本冲突的装置的结构示意图。
图8是根据本申请一个实施例的电子设备的框图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的解决组件版本冲突的方法、装置、电子设备和存储介质。
图1是根据本申请一个实施例的解决组件版本冲突的方法的流程示意图。其中,需要说明的是,本实施例提供的解决组件版本冲突的方法的执行主体为解决组件版本冲突的装置,该解决组件版本冲突的装置可以由软件和/或硬件的方式实现,该实施例中解决组件版本冲突的装置可以配置在应用管理服务端中,该应用管理服务端可以提供应用程序的开发环境以及开发工具,以提高应用程序的开发效率。该应用管理服务端可以配置在电子设备中,本实施例中的电子设备可以包括但不限于终端设备和服务器等设备,该实施例对电子设备不作具体限定。
如图1所示,该解决组件版本冲突的方法可以包括:
步骤101,接收请求端的组件版本设置请求,其中,组件版本设置请求包括应用程序标识信息、为组件版本号存在冲突的第一组件信息所设置的第一组件版本号。
在一些实施例中,上述请求端可以为任意类型的电子设备,例如,个人计算机,该实施例对请求端不作具体限定。
其中,应用程序标识信息用于对应用程序进行唯一标识,不同应用程序所对应的应用程序标识信息是不同的。
在一些实施例中,可在请求端上显示对应应用程序的组件版本号存在冲突的第一组件信息。
在另一些实施例中,为了方便开发人员可视化查看应用程序中组件的依赖关系,可在请求端上以图形化的方式显示组件依赖关系,并在组件依赖关系中对组件版本号冲突的组件信息进行标记。
对应地,在请求端可视化显示出组件版本号存在冲突的组件信息后,开发人员可在请求端通过编辑操作对组件信息的组件版本号进行设置。
具体地,请求端上还可以显示组件信息所对应的多个候选组件版本号,开发人员可通过选择操作从多个候选组件版本号中选择出第一组件版本号。
其中,上述标记的方式是预先设置的,例如,可对组件版本号存在冲突的组件信息进行高亮、标黄、标红等方式显示,该实施例对请求端对组件进行标记的方式不作具体限定。
步骤102,获取与第一组件信息对应的多个第一组件。
作为一种可能的实现方式,可根据预先保存的各个组件与组件信息之间的对应关系,获取该第一组件信息所对应的多个第一组件。
其中,组件信息可以包括但不限于组件标识信息和组件名称信息等。
步骤103,获取与应用程序标识信息对应的组件依赖配置文件。
作为一种可能的实现方式,可根据预先保存的应用程序标识信息与组件依赖配置文件之间的对应关系,获取与该应用程序标识信息对应的组件依赖配置文件。
步骤104,将组件依赖配置文件中多个第一组件对应的组件版本号均调整为第一组件版本号,以得到更新后的组件依赖配置文件。
在一些实施例中,针对每个第一组件,可确定该第一组件的当前组件版本号与第一组件版本号是否相同,如果两者相同,则将该第一组件的当前组件版本号调整为第一组件版本号。
可以理解的是,在第一组件的当前组件版本号与第一组件版本号相同,则保持第一组件的当前组件版本号不变,即,不对第一组件的当前组件版本号进行调整。
其中,第一组件版本号可以是存在冲突的组件版本号中的一个,或者,是一个新的组件版本号。
例如,应用程序应用到组件1两次,在利用组件1的这两次过程,组件1对应的组件版本号分别为组件版本号A和组件版本号B。为了避免后续所开发的应用程序不稳定,可将这两次所应用到的组件1的组件版本号均设置为组件版本号A或者B。
再例如,组件1对应的组件版本号包括组件版本号A、组件版本号B和组件版本号C。假设应用程序应用到组件1两次,在利用组件1的这两次过程,组件1对应的组件版本号分别为组件版本号A和组件版本号B。为了避免后续所开发的应用程序不稳定,可将这两次所应用到的组件1的组件版本号均设置为组件版本号C。
步骤105,根据更新后的组件依赖配置文件,编译应用程序标识信息对应的应用程序。
在一些实施例中,在与应用程序标识信息所对应的应用程序是基于安卓系统开发工具所开发的,并在应用程序被触发时,可控制请求端中预先安装的Gradle插件,读取更新后的组件依赖配置文件,并根据更新后的组件依赖配置文件,对应用程序标识信息所对应的应用程序进行编译。由此,无需开发人员手动调整应用程序的代码来解决组件版本号冲突的问题,减少了开发者的操作,减少了开发时间,提高了开发效率。
在一些实施例中,可通过建立build、同步sync,或者被任务task等方式触发应用程序。
本申请实施例的解决组件版本冲突的方法,在获取到包括应用程序标识信息、为组件版本号存在冲突的第一组件信息所设置的第一组件版本号的组件版本设置请求后,获取与第一组件信息对应的多个第一组件,并获取与应用程序标识信息对应的组件依赖配置文件,以及将组件依赖配置文件中多个第一组件对应的组件版本号均调整为第一组件版本号,以得到更新后的组件依赖配置文件,并根据更新后的组件依赖配置文件,编译应用程序标识信息对应的应用程序。由此,使得开发人员通过请求端发送一个组件版本设置请求,即可对组件版本号存在冲突的组件信息的组件版本号进行调整,从而无需开发人员手动调整应用程序的代码来解决组件版本号冲突的问题,减少了开发者的操作,减少了开发时间,提高了开发效率。
在一些实施例中,开发人员获取对应应用程序的组件依赖关系数据的一般过程为,开发人员在请求端中通过代码的方式输入相应指令,对应地,根据相应指令从应用程序对应的项目管理仓库中获取所有依赖的组件,并基于所依赖的组件进行分析,并根据分析结果,确定组件的依赖关系以及组件版本冲突信息。然而,上述方式,由于一个应用程序通常所依赖的组件特别多,因此,得到组件的依赖关系以及组件版本冲突信息的效率比较低。为了可以快速获取对应应用程序的组件版本依赖关系数据,在一些实施例中,还可以接收请求端发送的组件关系查询请求,其中,组件关系查询请求中包括应用标识信息。对应地,可从预设的数据库中获取该应用程序标识信息对应的组件依赖关系数据,并将组件依赖关系数据发送给请求端。对应地,请求端可视化显示组件依赖关系数据。
在本申请的一个实施例中,为了方便开发人员可快速获取存在组件版本号存在冲突的第一组件信息,在接收请求端的组件版本设置请求之前,如图2所示,可以包括:
步骤201,接收请求端的查询请求,其中,查询请求包括应用程序标识信息。
步骤202,从预设的数据库中,获取与应用程序标识信息对应的组件查询结果,其中,组件查询结果包括第一组件信息。
在一些实施例中,上述预设的数据库中可保存各个应用程序标识信息与其对应的组件版本号存在冲突的组件信息。
在获取到查询请求后,可从查询请求中获取应用程序标识信息,然后,可从数据库中获取应用程序标识信息所对应的组件版本号存在冲突的第一组件信息。
步骤203,将第一组件信息发送给请求端,以使得请求端上显示第一组件信息。
在另一些实施例中,上述从预设的数据库中,获取与应用程序标识信息对应的组件查询结果的一种可能实现方式,如图3所示,可以包括:
步骤301,从预设的数据库中,获取应用程序标识信息所标识的应用程序直接依赖的第二组件信息,其中,第二组件信息中包括多个第二组件各自对应的组件信息。
步骤302,针对每个第二组件,根据第二组件的组件信息,获取第二组件的第一组件依赖关系数据。
在一些实施例中,针对每个第二组件,可根据该第二组件的组件信息查询预设的数据库中是否存在该组件信息对应的组件依赖关系数据,如果存在,则从预设的数据库中获取该组件对应的组件依赖关系数据。
可以理解的是,通常一些组件之间存在固定的依赖关系,因此,在获取应用程序标识信息所对应的组件依赖关系数据的过程中,可从数据库中遍历出应用程序标识所对应的应用程序所直接依赖的一级组件,然后,获取一级组件中各个组件对应的组件依赖关系数据,并根据一级组件中各个组件对应的组件依赖关系数据,确定出该应用程序标识所对应的组件依赖关系数据。由此,通过已分析过组件的组件依赖关系数据,快速确定出对应应用程序的组件依赖关系数据,从而可提高获取对应应用程序的组件依赖关系数据的效率。
在另一些实施例中,上述根据第二组件的组件信息,获取第二组件的第一组件依赖关系数据的另一种可能实现方式为:获取第二组件所直接依赖的目标组件;获取目标组件所直接依赖的组件,直至对应组件所直接依赖的组件为空时结束;将第二组件以及所获取到的所有组件依次连接,以得到第二组件的第一组件依赖关系数据。
其中,需要说明的是,在不同应用场景中,可通过不同的方式获取第二组件所直接依赖的目标组件,示例说明如下:
在一些实施例中,获取第二组件对应的对象模型文件;对对象模型文件进行解析,以得到解析结果,其中,解析结果包括第二组件所直接依赖的目标组件的组件标识;根据目标组件标识,获取目标组件。
具体地,在获取对象模型文件后,可根据对象模型文件中的组件坐标信息进行解析,以得到该第二组件所直接依赖的目标组件的组件标识。
其中,组件坐标信息是由组件标识以及组件版本号等信息组成。例如,应程序是基于安卓系统Android的应用程序,对应在对该应用程序进行开发时,该应用程序所有的依赖数据(包括aar/jar包,pom文件等)都存储在Maven仓库。对应地,对象模型文件为pom.xml文件,该pom.xml文件中保存有Maven坐标,其中不同组件对应的Maven坐标是不同的,Maven坐标表现形式为groupId:atifactId:version。其中, groupId:定义当前Maven项目隶属项目、组织artifactId:定义实际项目中的一个模块,version:定义当前项目的当前版本。其中,需要说明的是,一个组件的直接依赖存储在pom.xml文件的依赖dependencies节点中。
举例而言,应用应用程序APP直接依赖组件libraryA-1.0->libraryB-1.0,那么依赖libraryA-1.0的pom存储形式如下:
<project>
<groupId>com.test</groupId>
<artifactId>libraryA</artifactId>
<version>1.0</version>
<packaging>aar</packaging>
<dependencies>
<dependency>
<groupId>com.test</groupId>
<artifactId>libraryB</artifactId>
<version>1.0</version>
<scope>implementation</scope>
</dependency>
</dependencies>
</project>
可以理解的是,在一些实施例中,如果需要分析组件libraryA的组件依赖关系数据,可根据指定的maven仓库访问地址加上 /com/test/libraryB/1.0/libraryA-1.0.pom就可以获取libraryA所有的依赖,这样可以递归遍历任何一个项目中所有的依赖(包括直接依赖,直接依赖的下级依赖,以此类推),也能同时分析出依赖方式scope,并分析出依赖层级关系,存储在数据库中。
在一些实施例中,在上述应用程序是基于安卓系统开发工具所开发的情况下,上述依赖方式可以包括implementation、接口api和编译compileOnly等方式。
其中,implementation:该依赖方式所依赖的库不会传递,只会在当前module 中生效。
api:该依赖方式会传递所依赖的库,当其他module依赖了该module时,可以使用该module下使用api依赖的库。
compileOnly:只在编译时有效,不会参与打包。
在另一些实施例中,可根据预先保存的各个组件之间的依赖关系,获取第二组件所直接依赖的目标组件。
步骤303,根据第一组件依赖关系数据,确定组件版本号存在冲突的第三组件信息。
在本申请的一个实施例中,为了可以准确确定出组件版本号存在冲突的第三组件信息,上述根据第一组件依赖关系数据,确定组件版本号存在冲突的第三组件信息的一种可能实现方式为:对第一组件依赖关系数据中的各个组件,将组件标识相同的组件分为一组,以得到多组组件;判断每组组件中各个组件的组件版本号是否相同,并从多组组件中选出组件版本号不相同的目标组;根据目标组中组件版本号不同的组件,生成第三组件信息。
步骤304,根据各个第二组件的第三组件信息,生成第一组件信息。
基于上述任意实施例的基础上,为了满足对应开发人员动态添加组件的需求,在一些实施例中,如图4所示,该方法还可以包括:
步骤401,接收请求端的组件添加请求,其中,组件添加请求包括应用程序标识信息以及待添加组件信息。
步骤402,获取与应用程序标识信息对应的组件依赖关系数据。
在一些实施例中,可从预设的数据库中,获取与应用程序标识信息对应的组件依赖关系数据。
其中,上述预设的数据库中的组件依赖关系数据是通过与应用程序表示信息所对应的组件依赖配置文件进行预先分析而得到的。
步骤403,根据待添加组件信息,调整组件依赖关系数据。
步骤404,将调整后的组件依赖关系数据保存到组件依赖配置文件。
在一些实施例中,应用服务端中可以包括用于对数据库进行管理的PaaS平台,以及可与该PaaS平台对应的代码服务器。对应地,在获取调整后的组件依赖关系数据后,可将PaaS平台中的数据库中保存调整后的组件依赖关系数据,并可将调整后的组件依赖关系数据,以预设方式发送给代码服务器,对应地,代码服务器获取调整后的组件依赖关系数据,并将组件依赖关系数据写入与应用程序标识信息对应的组件依赖配置文件中。
作为一种示例性的实施方式,应用服务端和代码服务器之间可通过json格式,对组件依赖关系数据进行传输,从而使得代码服务器可获取json格式的组件依赖关系数据,并对json格式的组件依赖关系数据进行解析,以得到组件依赖关系数据,然后,将组件依赖关系数据写入与应用程序标识信息对应的组件依赖配置文件中。
对应地,在应用程序被触发后,可控制请求端中预先安装的Gradle插件,读取更新后的组件依赖配置文件,并根据更新后的组件依赖配置文件,对应用程序标识信息所对应的应用程序进行编译。由此,使得用户可通过可视化的方式添加组件,减少了用户通过代码添加组件的麻烦,方便了开发,提高了开发效率。
在一些实施例中,可通过建立build、同步sync,或者执行某个任务task等方式触发应用程序。
在一些实施例中,上述组件添加请求还包括待添加组件的组件标识,在图4所示的实施例的基础上,如图5所示,该方法还可以包括:
步骤501,查询组件依赖关系数据中是否存在待添加组件信息对应的目标组件。
步骤502,如果存在与待添加组件信息对应的目标组件,则确定目标组件的组件版本号与待添加组件信息所标识组件的组件版本号是否相同。
步骤503,如果不同,则根据目标组件和待添加组件信息所标识组件的组件信息,调整组件信息。
在本实施例中,在请求端添加组件的过程中,从组件依赖关系中获取与待添加组件具有相同组件标识的目标组件,并比较目标组件与待添加组件的组件版本号是否一致,并在两者不一致的情况下,根据目标组件以及待添加组件的组件信息,调整组件版本号存在冲突的组件信息。
为了使得本领域技术人员可以清楚了解本申请下面结合图6对添加组件的过程进行示例性描述。其中,本实施例中以应用管理端为paas平台服务端为例进行示意,其中,Paas平台,即(Platform-as-a-Service:平台即服务),把应用服务的运行和开发环境作为一种服务提供的平台。
如图6所示,可以包括:
步骤601,预先在前端界面录入组件到Paas平台服务端。
步骤602,构建不同组件版本将依赖分析数据存入数据库(DataBase)DB。
步骤603,进入APP管理页面,选择APP。
步骤604,显示能被APP添加的依赖组件列表。
步骤605,页面上选择添加的组件,以json串的形式发送给Pass平台服务端。
步骤607,Paas平台服务端将数据存存入DB,然后将一律组件列表发送给代码服务器。
步骤607,代码服务器上,将json串的依赖列表写入到APP的组件依赖配置文件。
例如,json串的形式为:{{"scope":"implementation","component_id":"com.test:libraryA","maven_coordina te":"com.test:libraryA:1.0"},{"scope":"implementation","component_id":"com.te st:libraryB","maven_coordinate":"com.test:libraryB:1.0"}}。
步骤608,APP将依赖添加到APP中。
在一些实施例中,APP在执行build、sync或者执行某个任务task时触发自定义Gradle插件,通过方法Configuration.getDependencies().addAll(List)动态将依赖添加到APP中。
与上述几种实施例提供的解决组件版本冲突的方法相对应,本申请的一种实施例还提供一种解决组件版本冲突的装置,由于本申请实施例提供的解决组件版本冲突的装置与上述几种实施例提供的解决组件版本冲突的方法相对应,因此在解决组件版本冲突的方法的实施方式也适用于本实施例提供的解决组件版本冲突的装置,在本实施例中不再详细描述。
图7是根据本申请一个实施例的解决组件版本冲突的装置的结构示意图。其中,需要说明的是,本实施例中的装置应用在应用管理服务端。
如图7所示,该解决组件版本冲突的装置700包括:
第一接收模块701,用于接收请求端的组件版本设置请求,其中,组件版本设置请求包括应用程序标识信息、为组件版本号存在冲突的第一组件信息所设置的第一组件版本号;
第一获取模块702,用于获取与第一组件信息对应的多个第一组件;
第二获取模块703,用于获取与应用程序标识信息对应的组件依赖配置文件;
配置文件更新模块704,用于将组件依赖配置文件中多个第一组件对应的组件版本号均调整为第一组件版本号,以得到更新后的组件依赖配置文件;
编译模块705,用于根据更新后的组件依赖配置文件,编译应用程序标识信息对应的应用程序。
在本申请的一个实施例中,该装置还可以包括:
第二接收模块,用于接收请求端的查询请求,其中,查询请求包括应用程序标识信息;
第三获取模块,用于从预设的数据库中,获取与应用程序标识信息对应的组件查询结果,其中,组件查询结果包括第一组件信息;
发送模块,用于将第一组件信息发送给请求端,以使得请求端上显示第一组件信息。
在本申请的一个实施例中,第三获取模块可以包括:
第一获取单元,用于从预设的数据库中,获取应用程序标识信息所标识的应用程序直接依赖的第二组件信息,其中,第二组件信息中包括多个第二组件各自对应的组件信息;
第二获取单元,用于针对每个第二组件,根据第二组件的组件信息,获取第二组件的第一组件依赖关系数据;
确定单元,用于根据第一组件依赖关系数据,确定组件版本号存在冲突的第三组件信息;
生成单元,用于根据各个第二组件的第三组件信息,生成第一组件信息。
在本申请的一个实施例中,第二获取单元,具体用于:
获取组件所直接依赖的目标组件;
获取目标组件所直接依赖的组件,直至对应组件所直接依赖的组件为空时结束;
将组件以及所获取到的所有组件依次连接,以得到组件的第一组件依赖关系数据。
在本申请的一个实施例中,确定单元,具体用于:
对第一组件依赖关系数据中的各个组件,将组件标识相同的组件分为一组,以得到多组组件;
判断每组组件中各个组件的组件版本号是否相同,并从多组组件中选出组件版本号不相同的目标组;
根据目标组中组件版本号不同的组件,生成第四组件信息。
在本申请的一个实施例中,装置还包括:
第三接收模块,用于接收请求端的组件添加请求,其中,组件添加请求包括应用程序标识信息以及待添加组件信息;
第四获取模块,用于获取与应用程序标识信息对应的组件依赖关系数据;
第一调整模块,用于根据待添加组件信息,调整组件依赖关系数据;
保存模块,用于将调整后的组件依赖关系数据保存到组件依赖配置文件。
在本申请的一个实施例中,组件添加请求还包括待添加组件信息所对应的组件版本号,装置还包括:
查询模块,用于查询组件依赖关系数据中是否存在待添加组件信息对应的目标组件;
确定模块,用于如果存在与待添加组件信息对应的目标组件,则确定目标组件的组件版本号与待添加组件信息所标识组件的组件版本号是否相同;
第二调整模块,用于如果不同,则根据目标组件和待添加组件信息所标识组件的组件信息,调整组件信息。
本申请实施例的解决组件版本冲突的装置,在获取到包括应用程序标识信息、为组件版本号存在冲突的第一组件信息所设置的第一组件版本号的组件版本设置请求后,获取与第一组件信息对应的多个第一组件,并获取与应用程序标识信息对应的组件依赖配置文件,以及将组件依赖配置文件中多个第一组件对应的组件版本号均调整为第一组件版本号,以得到更新后的组件依赖配置文件,并根据更新后的组件依赖配置文件,编译应用程序标识信息对应的应用程序。由此,使得开发人员通过请求端发送一个组件版本设置请求,即可对组件版本号存在冲突的组件信息的组件版本号进行调整,从而无需开发人员手动调整应用程序的代码来解决组件版本号冲突的问题,减少了开发者的操作,减少了开发时间,提高了开发效率。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
图8是根据本申请一个实施例的电子设备的框图。
如图8所示,该电子设备该电子设备包括:
存储器801、处理器802及存储在存储器801上并可在处理器802上运行的计算机指令。
处理器802执行指令时实现上述实施例中提供的解决组件版本冲突的方法。
进一步地,电子设备还包括:
通信接口803,用于存储器801和处理器802之间的通信。
存储器801,用于存放可在处理器802上运行的计算机指令。
存储器801可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器802,用于执行程序时实现上述实施例的解决组件版本冲突的方法。
如果存储器801、处理器802和通信接口803独立实现,则通信接口803、存储器801和处理器802可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(PeripheralComponent,简称为PCI)总线或扩展工业标准体系结构(Extended Industry StandardArchitecture,简称为EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器801、处理器802及通信接口803,集成在一块芯片上实现,则存储器801、处理器802及通信接口803可以通过内部接口完成相互间的通信。
处理器802可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。
本申请还提出一种计算机程序产品,当计算机程序产品中的指令处理器执行时实现本申请实施例的解决组件版本冲突的方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (16)

1.一种解决组件版本冲突的方法,其特征在于,所述方法包括:
接收请求端的组件版本设置请求,其中,所述组件版本设置请求包括应用程序标识信息、为组件版本号存在冲突的第一组件信息所设置的第一组件版本号;
获取与所述第一组件信息对应的多个第一组件;
获取与所述应用程序标识信息对应的组件依赖配置文件;
将所述组件依赖配置文件中所述多个第一组件对应的组件版本号均调整为所述第一组件版本号,以得到更新后的组件依赖配置文件;
根据所述更新后的组件依赖配置文件,编译所述应用程序标识信息对应的应用程序。
2.如权利要求1所述的方法,其特征在于,所述接收请求端的组件版本设置请求之前,所述方法还包括:
接收所述请求端的查询请求,其中,所述查询请求包括所述应用程序标识信息;
从预设的数据库中,获取与所述应用程序标识信息对应的组件查询结果,其中,所述组件查询结果包括所述第一组件信息;
将所述第一组件信息发送给所述请求端,以使得所述请求端上显示所述第一组件信息。
3.如权利要求2所述的方法,其特征在于,所述从预设的数据库中,获取与所述应用程序标识信息对应的组件查询结果,包括:
从所述预设的数据库中,获取所述应用程序标识信息所标识的应用程序直接依赖的第二组件信息,其中,所述第二组件信息中包括多个第二组件各自对应的组件信息;
针对每个第二组件,根据所述第二组件的组件信息,获取所述第二组件的第一组件依赖关系数据;
根据所述第一组件依赖关系数据,确定组件版本号存在冲突的第三组件信息;
根据各个所述组件的所述第三组件信息,生成所述第一组件信息。
4.如权利要求3所述的方法,其特征在于,所述根据所述第二组件的组件信息,获取所述第二组件的第一组件依赖关系数据,包括:
获取所述第二组件所直接依赖的目标组件;
获取所述目标组件所直接依赖的组件,直至对应组件所直接依赖的组件为空时结束;
将所述第二组件以及所获取到的所有组件依次连接,以得到所述第二组件的第一组件依赖关系数据。
5.如权利要求3所述的方法,其特征在于,所述根据所述第一组件依赖关系数据,确定组件版本号存在冲突的第三组件信息,包括:
对所述第一组件依赖关系数据中的各个组件,将组件标识相同的组件分为一组,以得到多组组件;
判断每组组件中各个组件的组件版本号是否相同,并从所述多组组件中选出组件版本号不相同的目标组;
根据所述目标组中组件版本号不同的组件,生成所述第三组件信息。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述请求端的组件添加请求,其中,所述组件添加请求包括所述应用程序标识信息以及待添加组件信息;
获取与所述应用程序标识信息对应的组件依赖关系数据;
根据所述待添加组件信息,调整所述组件依赖关系数据;
将调整后的组件依赖关系数据保存到所述组件依赖配置文件。
7.如权利要求6所述的方法,其特征在于,所述组件添加请求还包括所述待添加组件信息所对应的组件版本号,所述方法还包括:
查询所述组件依赖关系数据中是否存在所述待添加组件信息对应的目标组件;
如果存在与所述待添加组件信息对应的目标组件,则确定所述目标组件的组件版本号与所述待添加组件信息所标识组件的组件版本号是否相同;
如果不同,则根据所述目标组件和所述待添加组件信息所标识组件的组件信息,调整所述组件信息。
8.一种解决组件版本冲突的装置,其特征在于,所述装置包括:
第一接收模块,用于接收请求端的组件版本设置请求,其中,所述组件版本设置请求包括应用程序标识信息、为组件版本号存在冲突的第一组件信息所设置的第一组件版本号;
第一获取模块,用于获取与所述第一组件信息对应的多个第一组件;
第二获取模块,用于获取与所述应用程序标识信息对应的组件依赖配置文件;
配置文件更新模块,用于将所述组件依赖配置文件中所述多个第一组件对应的组件版本号均调整为所述第一组件版本号,以得到更新后的组件依赖配置文件;
编译模块,用于根据所述更新后的组件依赖配置文件,编译所述应用程序标识信息对应的应用程序。
9.如权利要求8所述的装置,其特征在于,所述装置还包括:
第二接收模块,用于接收所述请求端的查询请求,其中,所述查询请求包括所述应用程序标识信息;
第三获取模块,用于从预设的数据库中,获取与所述应用程序标识信息对应的组件查询结果,其中,所述组件查询结果包括所述第一组件信息;
发送模块,用于将所述第一组件信息发送给所述请求端,以使得所述请求端上显示所述第一组件信息。
10.如权利要求9所述的装置,其特征在于,所述第三获取模块,包括:
第一获取单元,用于从所述预设的数据库中,获取所述应用程序标识信息所标识的应用程序直接依赖的第二组件信息,其中,所述第二组件信息中包括多个第二组件各自对应的组件信息;
第二获取单元,用于针对每个第二组件,根据所述第二组件的组件信息,获取所述第二组件的第一组件依赖关系数据;
确定单元,用于根据所述第一组件依赖关系数据,确定组件版本号存在冲突的第三组件信息;
生成单元,用于根据各个所述第二组件的所述第三组件信息,生成所述第一组件信息。
11.如权利要求10所述的装置,其特征在于,所述第二获取单元,具体用于:
获取所述组件所直接依赖的目标组件;
获取所述目标组件所直接依赖的组件,直至对应组件所直接依赖的组件为空时结束;
将所述组件以及所获取到的所有组件依次连接,以得到所述组件的第一组件依赖关系数据。
12.如权利要求10所述的装置,其特征在于,所述确定单元,具体用于:
对所述第一组件依赖关系数据中的各个组件,将组件标识相同的组件分为一组,以得到多组组件;
判断每组组件中各个组件的组件版本号是否相同,并从所述多组组件中选出组件版本号不相同的目标组;
根据所述目标组中组件版本号不同的组件,生成所述第四组件信息。
13.如权利要求8所述的装置,其特征在于,所述装置还包括:
第三接收模块,用于接收所述请求端的组件添加请求,其中,所述组件添加请求包括所述应用程序标识信息以及待添加组件信息;
第四获取模块,用于获取与所述应用程序标识信息对应的组件依赖关系数据;
第一调整模块,用于根据所述待添加组件信息,调整所述组件依赖关系数据;
保存模块,用于将调整后的组件依赖关系数据保存到所述组件依赖配置文件。
14.如权利要求13所述的装置,其特征在于,所述组件添加请求还包括所述待添加组件信息所对应的组件版本号,所述装置还包括:
查询模块,用于查询所述组件依赖关系数据中是否存在所述待添加组件信息对应的目标组件;
确定模块,用于如果存在与所述待添加组件信息对应的目标组件,则确定所述目标组件的组件版本号与所述待添加组件信息所标识组件的组件版本号是否相同;
第二调整模块,用于如果不同,则根据所述目标组件和所述待添加组件信息所标识组件的组件信息,调整所述组件信息。
15.一种电子设备,包括:存储器,处理器;所述存储器中存储有计算机指令,当所述计算机指令被所述处理器执行时,实现如权利要求1-7中任一项所述的解决组件版本冲突的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-7中任一项所述的解决组件版本冲突的方法。
CN202110321895.9A 2021-03-25 2021-03-25 解决组件版本冲突的方法、设备和存储介质 Pending CN115202714A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110321895.9A CN115202714A (zh) 2021-03-25 2021-03-25 解决组件版本冲突的方法、设备和存储介质
PCT/CN2021/140190 WO2022199160A1 (zh) 2021-03-25 2021-12-21 解决组件版本冲突的方法、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110321895.9A CN115202714A (zh) 2021-03-25 2021-03-25 解决组件版本冲突的方法、设备和存储介质

Publications (1)

Publication Number Publication Date
CN115202714A true CN115202714A (zh) 2022-10-18

Family

ID=83396295

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110321895.9A Pending CN115202714A (zh) 2021-03-25 2021-03-25 解决组件版本冲突的方法、设备和存储介质

Country Status (2)

Country Link
CN (1) CN115202714A (zh)
WO (1) WO2022199160A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7032033B1 (en) * 2001-11-30 2006-04-18 Microsoft Corporation Handling collisions during synchronization of data between client and server computers
CN106293763B (zh) * 2016-08-19 2019-10-22 广州品唯软件有限公司 应用组件版本的管理方法及装置
CN110737460A (zh) * 2019-09-04 2020-01-31 厦门网宿有限公司 一种平台项目管理方法及装置
CN111967017B (zh) * 2020-07-28 2023-06-02 深圳开源互联网安全技术有限公司 生成依赖关系的方法、装置、终端设备及存储介质
CN112214408B (zh) * 2020-10-12 2024-05-28 抖音视界有限公司 依赖冲突检测方法、装置、电子设备及计算机可读介质

Also Published As

Publication number Publication date
WO2022199160A1 (zh) 2022-09-29

Similar Documents

Publication Publication Date Title
US6106571A (en) Relocatable instrumentation tags for testing and debugging a computer program
CN110569035B (zh) 软件开发项目的代码编译方法、装置、设备和存储介质
CN108920370B (zh) 兼容性问题检测方法、装置及设备
CN108170465B (zh) 一种版本信息管理方法、电子设备及可读存储介质
CN111068328A (zh) 游戏广告配置表格的生成方法、终端设备及介质
CN109614325B (zh) 一种确定控件属性的方法及装置、电子设备和存储介质
US11422917B2 (en) Deriving software application dependency trees for white-box testing
CN111506358A (zh) 更新容器配置的方法及装置
CN109857444B (zh) 应用程序的更新方法、装置、电子设备和可读存储介质
CN114116505A (zh) 代码测试方法及装置
US9064042B2 (en) Instrumenting computer program code by merging template and target code methods
CN112597023A (zh) 基于导图的案例管理方法、装置、计算机设备及存储介质
CN109582347B (zh) 一种获取前端代码的方法及装置
CN116861040A (zh) 生成脚本间血缘关系图的方法、装置、设备及存储介质
US20060225047A1 (en) Generic software requirements analyzer
CN112052037A (zh) 一种应用软件开发方法、装置、设备及介质
CN115202714A (zh) 解决组件版本冲突的方法、设备和存储介质
CN110955449A (zh) 客户端的灰度发布方法及装置
CN112711427A (zh) 一种镜像文件的获取方法以及装置
CN115794214A (zh) 应用模块元数据管理方法、设备、存储介质及装置
CN108614704B (zh) 代码编译方法及装置
CN110737438A (zh) 一种数据处理方法和装置
CN116049000A (zh) 环境参数配置方法、装置、设备、存储介质及产品
CN115794384A (zh) 代码编译任务分配方法、装置、设备及存储介质
US20230115334A1 (en) Identifying computer instructions enclosed by macros and conflicting macros at build time

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