CN111737504A - 图像资源检测方法、装置、设备及存储介质 - Google Patents

图像资源检测方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111737504A
CN111737504A CN202010584719.XA CN202010584719A CN111737504A CN 111737504 A CN111737504 A CN 111737504A CN 202010584719 A CN202010584719 A CN 202010584719A CN 111737504 A CN111737504 A CN 111737504A
Authority
CN
China
Prior art keywords
image resource
project
module
code
identifier
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
CN202010584719.XA
Other languages
English (en)
Other versions
CN111737504B (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.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network 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 Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202010584719.XA priority Critical patent/CN111737504B/zh
Publication of CN111737504A publication Critical patent/CN111737504A/zh
Application granted granted Critical
Publication of CN111737504B publication Critical patent/CN111737504B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/53Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/5866Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using information manually generated, e.g. tags, keywords, comments, manually generated location and time information

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请提供一种图像资源检测方法、装置、设备及存储介质,涉及软件工程技术领域。该方法包括:获取主工程的代码文件的改动说明信息;根据所述改动说明信息确定改动图像资源的标识;向所述主工程关联的每个模块工程的代码管理设备发送图像资源检测请求,其中,所述图像资源检测请求包括所述改动图像资源的标识;所述图像资源检测请求用于触发所述每个模块工程的代码管理设备根据所述改动图像资源的标识,在所述每个模块工程的代码文件中进行搜索,并根据搜索结果,确定所述每个模块工程的代码文件是否引用所述改动图像资源。本申请可提高图像资源的检测效率以及检测结果的精准度。

Description

图像资源检测方法、装置、设备及存储介质
技术领域
本申请涉及软件工程技术领域,具体而言,涉及一种图像资源检测方法、装置、设备及存储介质。
背景技术
在软件开发过程中,为避免项目工程中代码文件的个数不断膨胀,导致项目工程的编译时间较长,影响项目工程的编译效率,可通过模块化工程技术将该项目工程中的部分业务独立成单独的模块工程,使得一个项目工程呈现为主工程和多个模块工程。在主工程中不存在各模块工程的源码,仅有各模块工程对应的二进制文件。
在主工程的开发过程中,当某个图像资源需要被改动时,不仅需确认主工程的代码文件中没有引用到该图像资源,还需依次打开所有模块工程的代码文件,手动搜索以确认该图像资源是否被引用到。只有确认主工程和所有模块工程的代码文件均未引用该图像资源,才可对该图像资源进行对应的改动操作,整个过程,相当麻烦和繁琐。
由用户手动打开各模块工程的代码文件,检查主工程的代码文件中改动的图像资源是否被各模块工程的代码文件所引用,整个过程非常麻烦和繁琐,用户人为检查,其检查结果的可靠性也较差,并且,随着模块工程数量的增多,检查的工作量也越来越大。
发明内容
本申请的目的在于,针对上述现有技术中的不足,提供一种图像资源检测方法、装置、设备及存储介质,以提高图像资源的检测效率,降低图像检测的工作量。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供了一种图像资源检测方法,包括:
获取主工程的代码文件的改动说明信息;
根据所述改动说明信息,确定改动图像资源的标识;
向所述主工程关联的每个模块工程的代码管理设备发送图像资源检测请求,其中,所述图像资源检测请求包括:所述改动图像资源的标识;所述图像资源检测请求用于触发所述每个模块工程的代码管理设备根据所述改动图像资源的标识,在所述每个模块工程的代码文件中进行搜索,并根据搜索结果,确定所述每个模块工程的代码文件是否引用所述改动图像资源。
可选的,所述获取主工程的代码文件的改动说明信息,包括:
响应代码提交请求,获取所述代码提交请求中的所述改动说明信息。
可选的,所述根据所述改动说明信息,确定改动图像资源的标识,包括:
从所述改动说明中确定所述改动图像资源的条目信息;
对所述条目信息进行预处理,得到所述条目信息中的至少一个图像资源的标识;所述改动图像资源的标识包括:所述至少一个图像资源的标识。
可选的,所述从所述改动说明信息中确定所述改动图像资源的条目信息,包括:
使用正则表达式从所述改动说明信息中过滤出以预设改动类型标识开头,以预设图像资源标识结尾的目标条目信息;
确定所述目标条目信息为所述改动图像资源的条目信息。
可选的,所述对所述改动图像资源的条目信息进行预处理,得到至少一个图像资源的标识,包括:
去除所述条目信息中的路径信息、图像资源类型信息,得到所述至少一个图像资源的标识。
可选的,若所述改动图像资源包括:多个图像资源,则所述根据所述改动说明信息,确定改动图像资源的标识,还包括:
对所述多个图像资源的标识进行拼接,得到所述多个图像资源的标识字符串;所述改动图像资源的标识为:所述标识字符串。
可选的,所述对所述多个图像资源的标识进行拼接,得到所述多个图像资源的标识字符串,包括:
根据预设的分隔符,对所述多个图像资源的标识进行拼接,得到所述标识字符串,所述标识字符串中相邻两个图像资源的标识通过所述分隔符间隔开。
可选的,所述向所述主工程关联的每个模块工程的代码管理设备发送图像资源检测请求,包括:
读取所述主工程的模块配置信息;
获取所述模块配置信息中所述每个模块工程的访问标识以及令牌信息;
根据所述访问标识和所述令牌信息,向所述每个模块工程的代码管理设备发送所述图像资源检测请求。
可选的,所述模块配置信息为模块配置列表;所述读取所述主工程的模块配置信息之前,所述方法还包括:
获取所述每个模块工程的访问标识以及令牌信息;
生成所述模块配置列表,所述模块配置列表中包括:所述每个模块工程的访问标识以及令牌信息。
可选的,所述根据所述访问标识和所述令牌信息,向所述每个模块工程的代码管理设备发送所述图像资源检测请求,包括:
向所述每个模块工程的代码管理设备的所述访问标识发送发布请求,所述发布请求的请求头中携带有所述令牌信息,所述发布请求的主体包括:所述改动图像资源的标识;
所述图像资源检测请求为所述发布请求。
可选的,所述改动图像资源的改动类型包括:删除,和/或,修改。
第二方面,本申请实施例还提供一种图像资源检测方法,包括:
接收主工程的代码管理设备发送的图像资源检测请求,其中,所述图像资源检测请求包括:所述改动图像资源的标识,所述改动图像资源的标识为所述主工程的代码管理设备根据所述主工程的代码文件的改动说明信息所确定的图像资源标识;
根据所述改动图像资源的标识,在模块工程的代码文件中进行搜索;
根据搜索结果,确定所述模块工程的代码文件是否引用所述改动图像资源。
可选的,若所述改动图像资源的标识为标识字符串;所述根据所述改动图像资源的标识,在模块工程的代码文件中进行搜索,包括:
将所述标识字符串转换为图像资源列表,所述图像资源列表包括:多个图像资源的标识;
根据所述每个图像资源的标识,在所述模块工程的代码文件中进行搜索。
可选的,所述模块工程的代码文件包括:多个分支代码文件;所述根据所述改动图像资源的标识,在模块工程的代码中进行搜索,包括:
根据所述改动图像资源的标识,在所述多个分支代码文件中进行搜索;
所述根据搜索结果,确定所述模块工程的代码文件是否引用所述改动图像资源,包括:
若在所述多个分支代码文件中均未搜索到所述改动图像资源的标识,则确定所述模块工程的代码文件未引用所述改动图像资源;
若在至少一个分支代码文件中搜索到所述改动图像资源的标识,则确定所述模块工程的代码文件引用所述改动图像资源。
可选的,所述根据所述改动图像资源的标识,在所述多个分支代码文件中进行搜索之前,所述方法还包括:
采用复制或拉取的方式,获取所述多个分支代码文件。
可选的,若在至少一个分支代码文件中搜索到所述改动图像资源的标识,所述方法还包括:
输出所述模块工程的代码文件中引用所述改动图像资源的位置信息;所述位置信息包括:引用所述改动图像资源的分支代码文件的文件名。
可选的,所述方法还包括:
若所述模块工程的代码文件中未引用所述改动图像资源,则确定所述模块工程的代码文件通过图像资源检测。
可选的,所述方法还包括:
若所述模块工程的代码文件中引用所述改动图像资源,则确定所述模块工程的代码文件未通过图像资源检测。
可选的,所述方法还包括:
返回错误指示信息,所述错误指示信息用以指示所述功能模块的代码文件中引用了所述主工程的代码文件中改动的图像资源。
第三方面,本申请实施例还提供一种图像资源检测装置,包括:
获取模块,用于获取主工程的代码文件的改动说明信息;
确定模块,用于根据所述改动说明信息,确定改动图像资源的标识;
发送模块,用于向所述主工程关联的每个模块工程的管理设备发送图像资源检测请求,其中,所述图像资源检测请求包括:所述改动图像资源的标识;所述图像资源检测请求用于触发所述每个模块工程的管理设备根据所述改动图像资源的标识,在所述每个模块工程的代码文件中进行搜索,并根据搜索结果,确定所述每个模块工程的代码文件是否引用所述改动图像资源。
可选的,获取模块,具体用于响应代码提交请求,获取代码提交请求中的该改动说明。
可选的,确定模块,具体用于从该改动说明信息中确定该改动图像资源的条目信息;对该条目信息进行预处理,得到至少一个图像资源的标识;该改动图像资源的标识包括:该至少一个图像资源的标识。
可选的,确定模块,具体用于使用正则表达式从该改动说明信息中过滤出以预设改动类型标识开头,以预设图像资源标识结尾的目标条目信息;确定该目标条目信息为该改动图像资源的条目信息。
可选的,确定模块,具体用于去除该条目信息中的路径信息、图像资源类型信息,得到该至少一个图像资源的标识。
可选的,若该改动图像资源包括:多个图像资源,则确定模块,还用于对该多个图像资源的标识进行拼接,得到该多个图像资源的标识字符串;该改动图像资源的标识为:该标识字符串。
可选的,确定模块,具体用于根据预设的分隔符,对该多个图像资源的标识进行拼接,得到该标识字符串,该标识字符串中相邻两个图像资源的标识通过该分隔符间隔开。
可选的,该图像资源检测装置还可包括:
读取模块,用于在发送模块向该主工程关联的每个模块工程的代码管理设备发送图像资源检测请求之前,读取该主工程的模块配置信息;
获取模块,还用于获取该模块配置信息中每个模块工程的信息的访问标识以及令牌信息。
相应的,发送模块,具体用于根据该访问标识和该令牌信息,向该每个模块工程的代码管理设备发送该图像资源检测请求。
可选的,该模块配置信息为模块配置列表;获取模块,还用于获取所述每个模块工程的访问标识以及令牌信息;
该图像资源检测装置还可包括:
生成模块,用于生成该模块配置列表,该模块配置列表包括:该每个模块工程的访问标识以及令牌信息。
可选的,发送模块,具体用于向该每个模块工程的代码管理设备的该访问标识发送发布请求,该发布请求的请求头中携带有该令牌信息,该发布请求的主体包括:该改动图像资源的标识;该图像资源检测请求为该发布请求。
可选的,该改动图像资源的改动类型包括:删除,和/或,修改。
第四方面,本申请实施例还提供一种图像资源检测装置,包括:
接收模块,用于接收主工程的管理设备发送的图像资源检测请求,其中,所述图像资源检测请求包括:所述改动图像资源的标识,所述改动图像资源的标识为所述主工程的管理设备根据所述主工程的代码文件的改动说明信息所获取的图像资源标识;
搜索模块,用于根据所述改动图像资源的标识,在模块工程的代码文件中进行搜索;
确定模块,用于根据搜索结果,确定所述模块工程的代码文件是否引用所述改动图像资源。
可选的,若该改动图像资源的标识为标识字符串;搜索模块,具体用于将该标识字符串转换为图像资源列表,该图像资源列表包括:多个图像资源的标识;根据该每个图像资源的标识,在该模块工程的代码文件中进行搜索。
可选的,该模块工程的代码文件可包括:多个分支代码文件。
搜索模块,具体用于根据该改动图像资源的标识,在该多个分支代码文件中进行搜索。
确定模块,具体用于若在该多个分支代码文件中均未搜索到该改动图像资源的标识,则确定该模块工程的代码文件未引用该改动图像资源;若在至少一个分支代码文件中搜索到该改动图像资源的标识,则确定该模块工程的代码文件引用该改动图像资源。
可选的,该图像资源检测装置还包括:
获取模块,用于在搜索模块根据该改动图像资源的标识,在该多个分支代码文件中进行搜索之前,采用复制或拉取的方式,获取该多个分支代码文件。
可选的,该图像资源检测装置还包括:
输出模块,用于若在至少一个分支代码文件中搜索到该改动图像资源的标识,输出该模块工程的代码文件中打印引用该动图像资源的位置信息,该位置信息包括:引用该改动图像资源的分支代码文件的文件名。
可选的,确定模块,还用于若模块工程的代码文件中未引用该改动图像资源,则确定该模块工程的代码文件通过图像资源检测。
可选的,确定模块,还用于若该模块工程的代码文件中引用所述改动图像资源,则确定该模块工程的代码文件未通过图像资源检测。
可选的,该图像资源检测装置还包括:
返回模块,用于返回错误指示信息,该错误指示信息用以指示该功能模块的代码文件中引用了该主工程的代码文件中改动的图像资源。
第五方面,本申请实施例还提供一种主工程的代码管理设备,包括:存储器和处理器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所提供的任一图像资源检测方法。
第六方面,本申请实施例还提供一种模块工程的代码管理设备,包括:存储器和处理器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述第二方面所提供的任一图像资源检测方法。
第七方面,本申请实施例还提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被读取并执行时,实现上述第一方面或第二方面任一所提供的任一图像资源检测方法。
本申请的有益效果是:
本申请所提供的图像资源检测方法、装置、设备及存储介质中,可由主工程的代码管理设备获取主工程的代码文件的改动说明信息,根据改动说明信息确定改动图像资源的标识,并向每个模块工程的代码管理设备发送包括该改动图像资源的标识的图像资源检测请求,以触发每个模块工程的代码管理设备根据改动图像资源的标识,在每个模块工程的代码文件中进行搜索,并根据搜索结果,确定每个模块工程的代码文件是否引用改动图像资源。本实施例提供的图像资源检测方法,可由主工程的代码管理设备触发控制各模块工程的代码管理设备实现模块工程的代码文件的图像资源检测,实现了模块工程的图像资源的自动检测,以自动化检测替代现有的手动打开检测,解放了人力,提高了检测效率,同时,相比手动检测,其检测结果也更佳精准。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种图像资源检测方法的流程示意图;
图2为本申请实施例提供的另一种图像资源检测方法的流程示意图;
图3为本申请实施例提供的又一种图像资源检测方法的流程示意图;
图4为本申请实施例提供的再一种图像资源检测方法的流程示意图;
图5为本申请实施例提供的再一种图像资源检测方法的流程示意图;
图6为本申请实施例提供的一种图像资源检测装置的示意图;
图7为本申请实施例提供的另一种图像资源检测装置的示意图;
图8为本申请实施例提供的一种主工程的代码管理设备的示意图;
图9为本申请实施例提供的一种模块工程的代码管理设备的示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。
本申请下述各实施例所提供的图像资源检测方法、装置、设备及存储介质等,可适用于基于模块化工程的项目工程的版本控制系统,以在项目工程的主工程的代码文件中图像资源被改动的情况下,对模块工程的代码文件进行图像资源检测,以确定模块工程的代码文件是否引用改动图像资源,从而确定主工程的代码文件该改动图像资源是否会被误改动,从而影响该项目工程的工程实现。
如下先对本申请实施例所涉及的技术名词进行解释。
模块化工程:在软件项目工程的开关过程中,为避免项目代码文件的个数不断膨胀,可通过模块化工程技术,将部分业务独立成单独的模块工程,使得一个项目工程呈现为主工程和多个模块工程。每个模块工程可实现一个特定的子功能,所有的模块工程以及该主工程可实现该项目共享的完整功能。各模块工程在主工程的代码文件通常是架构(Framework)库的形式存在。
Framework库:模块工程的代码文件中存储有该模块工程的源码,将该模块工程的源码以预设的方式进行打包,使得模块工程的源码被转换成二进制,即可得到该模块工程的Framework库。每个模块工程的Framework库对外通常以头(.h)文件的提供。即在主工程的代码文件中,各模块工程以Framework库中的头文件的方式进行展示。因此在主工程的代码文件,根本看不到模块工程的源码。
版本控制系统:在本申请实施例中的版本控制系统可以为分布式版本控制系统,即主工程以及各模块工程的代码文件分别存储于不同的仓库中,以通过不同的仓库的管理设备,实现对工程代码文件的版本管理。在一种可能的示例中,该分布式版本控制系统例如可以为使用Git Lab作为代码管理工具,并在此基础上搭建网页(Web)服务所实现的分布式版本控制系统。
GitLab CI:GitLab的持续集成(Continuous Integration,CI)技术,每次提交(git)代码到GitLab的仓库,或者其它触发方式下,都会触发该仓库执行对应的脚本。
以本申请所涉及的模块化工程的项目工程为例,Gitlab的仓库例如可包括:主工程的仓库,以各模块工程的仓库,无论是主工程的仓库,还是各模块工程的仓库,均可配置有对应的CI执行文件,以通过执行对应的CI执行文件中的脚本,实现对应仓库中代码文件的图像资源检测。
例如,主工程的仓库中所配置的CI执行文件,和模块工程的仓库所配置的CI执行文件中的脚本不同,以使得主工程的仓库通过执行该主工程的仓库所配置的CI执行文件中的脚本,实现下述各实施例提供的主工程对应的图像资源检测方法,模块工程的仓库可通过执行该模块工程的仓库所配置的CI执行文件中的脚本,实现下述各实施例提供的模块工程对应的图像资源检测方法。
主工程的仓库中所配置的CI执行文件,和模块工程的仓库所配置的CI执行文件中的执行触发方式也不同,以使得主工程的仓库和模块工程的仓库可分别基于不同的触发方式,实现对应的图像资源检测方法。由于不同模块工程的仓库执行的图像资源检测方法的过程类似,那么,不同模块工程的仓库中所配置的CI执行文件可相同。
如下通过多个实例对本申请所提供的图像资源检测方法进行示例说明。
图1为本申请实施例提供的一种图像资源检测方法的流程示意图,该图像资源检测方法可由主工程的代码管理设备通过软件和/或硬件的方式实现。该主工程的代码管理设备可以为如上提及的主工程的仓库,其具体的产品形态可以为仓库服务器。图1所示,该方法可包括:
S101、主工程的代码管理设备获取主工程的代码文件的改动说明信息。
该主工程的代码管理设备上可配置有主工程CI执行文件,以及该主工程CI执行文件的执行触发条件。该主工程CI执行文件可配置有对应的执行脚本。当主工程的代码管理设备检测达到该主工程CI执行文件的执行触发条件时,便通过执行该主工程CI执行文件中的执行脚本,实现S101-S103以及其它主工程的代码管理设备所执行的操作。
以分布式版本控制系统为GitLab为例,该主工程CI执行文件可以为用于执行主工程的图像资源检测的文件,其可以为.gitlab-ci.yml文件。
在一种示例中,该主工程CI执行文件的执行触发条件例如可以为:接收到主工程的代码提交请求,当然,也可以为其它的触发操作。该代码提交请求可以为分布式版本控制系统对应的客户端设备所发送的请求,该代码提交请求可以为客户端设备接收到通过web页面输入的操作后发送的请求。
该主工程的代码管理设备可在满足执行触发条件时,获取该主工程的代码文件的改动说明信息。该改动说明信息可用于表示该主工程的代码文件中所有的改动信息。
可选的,如上所示的S101中主工程的代码管理设备获取主工程的代码文件的改动说明信息可包括:
主工程的代码管理设备响应代码提交请求,获取该代码提交请求中的该改动说明信息。
例如主工程的代码管理设备可在接收到客户端设备发送的代码提交请求后,响应于该代码提交请求,获取该改动说明信息。其中,客户端设备可以是在该分布式版本控制系统的web页面,如GitLab的pipeline的页面上传改动后的主工程的代码文件之后,向主工程的代码管理设备发送该代码提交请求;也可以是在上传改动后的主工程的代码文件之后,接收输入的代码提交操作之后,向主工程的代码管理设备发送该代码提交请求。
可选的,该代码提交请求除了包括该改动说明信息之外,还可包括改动后的该主工程的代码文件。当然,也可包括其它的信息,在此不再赘述。
在其它的一些可能的示例中,该主工程的代码管理设备还可基于其它的方式获取该改动说明信息,而不限于如上所示的代码提交请求,例如,获取改动后的该主工程的代码文件,以及当前的主工程的代码文件,生成该改动说明信息。
S102、主工程的代码管理设备根据该改动说明信息,确定改动图像资源的标识。
该主工程的代码管理设备可基于预设的图像资源类型,以及预设的改动类型对该改动说明信息进行过滤,以得到满足该图像资源类型以及该改动类型的改动图像资源的标识。该预设的改动类型,即该改动图像资源的改动类型,其可以包括删除(Delete,D),和/或,修改(modify,M)。
S103、主工程的代码管理设备向主工程关联的每个模块工程的代码管理设备发送图像资源检测请求,其中,该图像资源检测请求包括:该改动图像资源的标识。
该图像资源检测请求用于触发该每个模块工程的代码管理设备根据该改动图像资源的标识,在该每个模块工程的代码文件中进行搜索,并根据搜索结果,确定该每个模块工程的代码文件是否引用该改动图像资源。
其中,该主工程关联的每个模块工程指的是,该主工程同为一个项目工程中的模块工程。该主工程的代码管理设备可预先存储有该主工程的所有模块工程的信息,如各模块工程的信息。主工程的代码管理设备在获取到该改动图像资源的标识的情况下,可以轮询多个模块工程的信息,以基于轮询到的模块工程的信息,向对应的模块工程的代码管理设备发送该改动图像资源的标识的图像资源检测请求,以触发该每个模块工程的代码管理设备基于改动图像资源的标识,在各自的代码文件中进行图像资源的检测,以确定该每个模块工程的代码文件是否引用该改动图像资源。
主工程的代码管理设备例如可采用curl工具向主工程关联的每个模块工程的代码管理设备发送图像资源检测请求。
对应的,该方法还可包括:
S104、模块工程的代码管理设备接收主工程的代码管理设备发送的图像资源检测请求,其中,该图像资源检测请求包括:该改动图像资源的标识。
该改动图像资源的标识为该主工程的代码管理设备根据该主工程的代码文件的改动说明信息所确定的图像资源标识。
为便于模块工程的代码管理设备执行该模块工程的图像资源检测,每个模块工程的代码管理设备也可配置有模块工程CI执行文件,以及该模块工程CI执行文件的执行触发条件。该模块工程CI执行条件可配置有对应的执行脚本。当模块工程的代码管理设备检测达到该模块工程CI执行文件的执行触发条件时,便通过执行该模块工程CI执行文件中的执行脚本,实现S104-S160以及其它模块工程的代码管理设备所执行的操作。
以分布式版本控制系统为GitLab为例,该模块工程CI执行文件可以为用于执行模块工程的图像资源检测的文件,其可以为.gitlab-ci.yml文件。需要指出的是,模块工程CI执行文件与上述主工程CI执行文件可以为相同格式的文件,但文件内的执行脚本不同。
在一种示例中,该模块工程CI执行文件的执行触发条件例如可以为:接收到来自主工程的代码管理设备的图像资源检测请求,当然,也可以为其它的触发操作。该图像资源检测请求例如可以为来自主工程的代码管理设备的发布(post)请求。即,该模块工程的代码管理设备可监测发布请求,当检测到携带有改动图像资源的标识的发布请求,则可确定满足该模块工程CI执行文件的执行触发条件。
除此之外,该模块工程的代码管理设备在配置完该模块工程CI执行文件之后,还获取该模块工程的信息以将各模块工程的信息,以模块配置信息的方式存储在主工程的代码管理设备中。
S105、模块工程的代码管理设备根据该改动图像资源的标识,在模块工程的代码文件中进行搜索。
S106、模块工程的代码管理设备根据搜索结果,确定该模块工程的代码文件是否引用该改动图像资源。
该模块工程的代码管理设备可根据该改动图像资源的标识,在该模块工程的代码文件,以正则表达式grep–Rils进行匹配搜索,若搜索到该改动图像资源的标识,则可确定该模块工程引用该改动图像资源;反之,若未搜索到,则确定该模块工程的代码文件未引用该改动图像资源。
本实施例所提供的图像资源检测方法中,可由主工程的代码管理设备获取主工程的代码文件的改动说明信息,根据改动说明信息确定改动图像资源的标识,并向每个模块工程的代码管理设备发送包括该改动图像资源的标识的图像资源检测请求,以触发每个模块工程的代码管理设备根据改动图像资源的标识,在每个模块工程的代码文件中进行搜索,并根据搜索结果,确定每个模块工程的代码文件是否引用改动图像资源。本实施例提供的图像资源检测方法,可由主工程的代码管理设备触发控制各模块工程的代码管理设备实现模块工程的代码文件的图像资源检测,实现了模块工程的图像资源的自动检测,以自动化检测替代现有的手动打开检测,解放了人力,提高了检测效率,同时,相比手动检测,其检测结果也更佳精准。
在上述实施例所示的图像资源检测方法的基础上,本申请实施例还可提供一种图像资源检测方法的实现方式,如下通过主工程的代码管理设备确定改动图像资源的标识的实现示例,对该图像资源检测方法的实现方式进行示例说明。图2为本申请实施例提供的另一种图像资源检测方法的流程示意图。如图2所示,如上所示的S102中主工程的代码管理设备根据该改动说明信息,确定改动图像资源的标识可以包括:
S201、主工程的代码管理设备从该改动说明信息中确定该改动图像资源的条目信息。
主工程的代码管理设备可根据预设的图像资源类型,以及预设的改动类型对该改动说明信息进行信息过滤,确定符合该图像资源类型以及预设的改动类型的该改动图像资源的条目信息。
在可能的实现方式中,如上所示的S201中主工程的代码管理设备从该改动说明信息中确定该改动图像资源的条目信息,包括:
主工程的代码管理设备使用正则表达式从该改动说明信息中过滤出以预设改动类型标识开头,以预设图像资源标识结尾的目标条目信息,并确定该目标条目信息为该改动图像资源的条目信息。
在一种可能的示例中,该主工程的代码管理设备可使用如下所示的正则表达式的git命令,从该改动说明信息过滤出以预设删除类型标识如D开头,以预设图像资源标识如png结尾的目标条目信息,其中,该预设图像资源标识用于指示图像资源类型。
git--no-pager diff--name-status HEAD~1|grep"^D.*png$"。
其中,D可为删除类型的预设标识,用于表示预设改动类型为删除,png可表示该图像资源类型为png格式。
在另一种可能的示例,该主工程的代码管理设备还可使用如下所示的正则表达式的git命令,从该改动说明信息过滤出以预设修改类型标识如M开头,以预设图像资源标识如png结尾的目标条目信息。
git--no-pager diff--name-status HEAD~1|grep"^M.*png$"。
其中,M可为改动类型的预设标识,用于表示预设改动类型为修改,png可用于表示该图像资源类型为png格式。当然,也可以为其它的改动类型,或者其它的图像资源类型,上述仅为一些可能的实现方式,本申请不对此进行限制。
S202、主工程的代码管理设备对该条目信息进行预处理,得到该条目信息中的至少一个图像资源的标识。
该改动图像资源的标识包括:该至少一个图像资源的标识。其中,每个图像资源的标识例如可以为该每个图像资源的文件名。
如上所示的预处理例如可以包括:去除该条目信息中的路径信息、图像资源类型等信息,得到至少一个图像资源的标识。其中,该图像资源类型可以为该每个图像资源的标识如文件名末尾的信息,例如可以为@2x.png或者@3x.png。
在一种可能的实现示例中,若该改动图像资源包括:改动的多个图像资源,则在S102中主工程的代码管理设备根据该改动说明信息,确定改动图像资源的标识,还可以包括:
S203、主工程的代码管理设备对该多个图像资源的标识进行拼接,得到该多个图像资源的标识字符串,该改动图像资源的标识为:该标识字符串。
例如,在可能的实现方式中,该主工程的代码管理设备可根据预设的分隔符,对该多个图像资源的标识进行拼接,得到该标识字符串,标识字符串中相邻两个图像资源的标识之间的通过所述分隔符间隔开。可选的,该标识字符串的末尾还具有该预设的分割符。该预设的分割符例如可以为连续两个逗号,也可以为其他形式的分隔符,本申请不对称进行限制。
示例的,该多个图像资源的标识字符串例如为如下字符串所示:
ranking_pk_yellow_bar_bg,,ranking_pk_yellow_avatar_border,,
其中,ranking_pk_yellow_bar_bg可以为一个图像资源的文件名,ranking_pk_yellow_avatar_border为另一个图像资源的文件名,“,,”为预设分隔符。
在该实现示例中,该主工程的代码管理设备可将该多个图像资源的标识进行拼接得到该多个图像资源的标识字符串,以向各模块工程的代码管理设备发送包括该标识字符串的图像资源检测请求。
在另一种可能的实现示例中,该主工程的代码管理设备也可将该多个图像资源的标识直接携带在该图像资源检测请求中直接进行发送。
将多个图像资源的标识进行拼接之后,将标识字符串携带在该图像资源检测请求中进行发送,可便于图像资源标识的携带传输,也便于模块工程端对各图像资源的标识的分解,从而有效保证图像资源的检测效率以及检测精度。
可选的,在如上任一所述的图像资源检测方法的基础上,本申请实施例还可提供一种图像资源检测方法的实现方式,如下通过主工程的代码管理设备发送图像资源检测请求的具体实现示例,对该图像资源检测方法的实现方式进行示例解释说明。图3为本申请实施例提供的又一种图像资源检测方法的流程示意图。如图3所示,在如上所示的S103中主工程的代码管理设备向主工程关联的每个模块工程的代码管理设备发送图像资源检测请求之前,该方法还可包括:
S301、主工程的代码管理设备读取该主工程的模块配置信息,并获取该模块配置信息中每个模块工程的信息的访问标识以及令牌信息。
该主工程的代码管理设备预先配置有模块配置信息,该模块配置信息可包括该主工程关联的所有模块工程的信息。该模块配置信息例如可以模块配置列表(Modulesconfig.plist)的方式存在。
该模块配置信息中每个模块工程的信息可包括:该模块工程的访问标识、令牌(token)信息、组别(group)信息、git信息,以及绑定(bundle)信息等。其中,该模块工程的访问标识例如可以为在分布式版本控制系统的网页中配置的该模块工程的应用程序接口(Application Programming Interface,API)。示例的,分布式版本控制系统为GitLab,则模块工程的访问标识可以为pipeline_api,令牌信息可以为pipeline_token。
其中,该令牌信息可以为各模块工程的代码管理设备在配置模块工程CI执行文件的情况下,所获取的该模块工程的令牌信息,如pipeline_token。
在可能的实施方式中,若该模块配置信息为模块配置列表,在上述S301中主工程的代码管理设备读取该主工程的模块配置信息之前,该方法还包括:
主工程的代码管理设备获取该每个模块工程的访问标识以及令牌信息,并生成该模块配置列表,该模块配置列表包括:该每个模块工程的访问标识以及令牌信息。
每个模块工程的代码管理在配置该每个模块工程的访问标识,并获取该每个模块工程的令牌信息的情况下,可将其访问标识以及令牌信息发送至主工程的代码管理设备,使得主工程的代码管理设备可将多个模块工程的访问标识和令牌信息进行收集,继而基于收集到的多个模块工程的访问标识和令牌信息,生成该模块配置列表。
相应的,如上所示的S103中主工程的代码管理设备向主工程关联的每个模块工程的代码管理设备发送图像资源检测请求,可包括:
S302、主工程的代码管理设备根据该访问标识和该令牌信息,向每个模块工程的管理设备发送该图像资源检测请求。
该主工程的代码管理设备可对模块配置信息中的多个模块工程的信息进行轮询,基于轮询到的模块工程的信息,向该模块工程的代码管理设备发送该图像资源检测请求。例如可基于该轮询到的模块工程的访问标识和述令牌信息,向该模块工程的代码管理设备发送该图像资源检测请求。
可选的,主工程的代码管理设备例如可向该每个模块工程的代码管理设备的该访问标识发送发布(post)请求,post请求的请求头中携带有该令牌信息,该post请求的主体包括:该改动图像资源的标识,例如上述由多个图像资源的标识拼接得到的标识字符串。该图像资源检测请求即为该发布请求。
示例的,主工程的代码管理设备向每个模块工程的代码管理设备的访问标识如pipeline_api发送post请求,该post请求中的消息头中可携带该令牌信息如pipeline_token,该post请求的主体携带该改动图像资源的标识。示例的,在一种可能实现方式中,该post请求的主体携带该改动图像资源的标识例如可以为采用上述图3所示的方式得到的标识字符串。
在该实施例所提供的图像资源检测方法中,基于各模块工程的访问标识以及令牌信息,向该每个模块工程的代码管理设备发送该图像资源检测请求可有效保证图像资源检测请求的传输可靠性,以准确触发各模块工程的代码管理设备执行图像资源检测。
可选的,在上述各实施例所示的图像资源检测方法的基础上,本申请实施例还可提供一种图像资源检测方法的实现方式,如下以该改动图像资源的标识为标识字符串时,模块工程的代码管理设备在模块工程的代码文件中进行搜索的实现示例,对该图像资源检测方法的实现方式进行示例说明。图4为本申请实施例提供的再一种图像资源检测方法的流程示意图。如图4所示,如上所示的S105中模块工程的代码管理设备根据该改动图像资源的标识,在模块工程的代码文件中进行搜索可以包括:
S401、模块工程的代码管理设备将该标识字符串转换为图像资源列表,该图像资源列表包括:多个图像资源的标识。
该模块工程的代码管理设备可将通过识别该标识字符串中的预设分隔符,对该标识字符串进行图像资源标识的分解,得到该多个图像资源的标识,基于该多个图像资源的标识,生成该图像资源列表,实现标识字符串到图像资源列表的转换。
S402、模块工程的代码管理设备可根据该每个图像资源的标识,在该模块工程的代码文件中进行搜索。
该模块工程的代码管理设备可该图像资源列表中的多个图像资源的标识进行遍历,基于遍历到的每个图像资源的标识在该模块工程的代码文件中进行图像资源搜索,实现图像资源的检查。该图像资源列表实际为改动图像资源列表。
本实施例提供的图像资源检测方法,可由模块工程的代码管理设备基于标识字符串转换得到的图像资源列表中的各图像资源的标识,在代码文件中进行搜索,实现了模块工程的代码文件中的图像资源的检测,保证改动的各图像资源均被检测到,可有效保证图像资源的检测精度。
在上述各实施例所示的图像资源检测方法的基础上,本申请实施例还可提供一种图像资源检测方法的实现方式,如下以模块工程的代码文件包括:多个分支代码文件的情况下,模块工程的代码管理设备在模块工程的代码文件中各分支代码文件中进行搜索的实现示例,对该图像资源检测方法的实现方式进行示例说明。图5为本申请实施例提供的再一种图像资源检测方法的流程示意图。如图5所示,如上所示的S105中模块工程的代码管理设备根据该改动图像资源的标识,在模块工程的代码文件中进行搜索可以包括:
S501、模块工程的代码管理设备根据该改动图像资源的标识,在该多个分支代码文件中进行搜索。
在该模块工程的代码管理设备,可预先存储有该模块工程的代码文件目录,该代码文件目录中,可记录有该多个分支代码文件的文件名。
在实际的应用中,可对该代码文件目录中的各分支代码文件的文件名进行遍历,将遍历到的每个分支代码文件的文件名作为目标文件名,以正则表达式grep–Rils对目标文件名的分支代码文件进行匹配搜索,得到每个分支代码文件的搜索结果。若在遍历的目标文件名的分支代码文件中搜索到该改动图像资源的标识,可输出该目标文件名的分支代码文件的搜索结果;若在遍历的目标文件名的分支代码文件中未搜索到该改动图像资源的标识,则继续进行下一文件名的遍历,直至遍历完该代码文件目录中的所有文件名。
该实施例的方案中,模块工程的代码管理设备基于该改动图像资源的标识,对该模块工程的每个分支代码文件均进行搜索,使得模块工程的代码文件中改动图像资源的检测更彻底,更完整,有效保证图像资源的检测精度,以及检测准确度。
可选的,如上所示的S106中模块工程的代码管理设备根据搜索结果,确定该模块工程的代码文件是否引用该改动图像资源,还可包括:
S502、若在该多个分支代码文件中均未搜索到该改动图像资源的标识,则模块工程的代码管理设备确定该模块工程的代码文件未引用该改动图像资源。
S503、若在至少一个分支代码文件中搜索到该改动图像资源的标识,则模块工程的代码管理设备确定该模块工程的代码文件引用了该改动图像资源。
该实施例提供的方案中,只有该模块工程的代码文件中,所有分支代码文件中均为搜索到该改动图像资源的标识,才可确定该确定该模块工程的代码文件未引用该改动图像资源;一旦有一个分支代码文件中搜索到该改动图像资源的标识,便确定该模块工程的代码文件引用了该改动图像资源。
可选的,在上述S501中模块工程的代码管理设备根据该改动图像资源的标识,在该多个分支代码文件中进行搜索之前,该方法还可包括:
S501a、模块工程的代码管理设备采用复制或拉取的方式,获取该多个分支代码文件。
该模块工程的代码管理设备可采用复制(clone)或拉取(pull)的方式,从该模块工程的代码文件所在的预设存储位置中获取该多个分支代码文件。
在上述方法的可能实现示例中,若在至少一个分支代码文件中搜索到所述改动图像资源的标识,该方法还可包括:
S504、模块工程的代码管理设备输出模块工程的代码文件中引用该改动图像资源的位置信息。
其中,位置信息包括:引用该改动图像资源的分支代码文件的文件名。
在位置信息除了包括:引用该改动图像资源的分支代码文件的文件名之外,还可包括:该分支代码文件中该改动图像资源的引用位置。在可能实现示例中,可通过调用打印(Print)函数实现位置信息的输出。
在其它的可能的示例中,该图像资源检测方法还可包括:
若该模块工程的代码文件中未引用该改动图像资源,则模块工程的代码管理设备可确定该模块工程的代码文件通过图像资源检测。
该模块工程的代码文件通过图像资源检测,则可第一方式如正常退出方式退出该模块工程的图像资源检测。
在其它的另一可能的示例中,该图像资源检测方法还可包括:
若该模块工程的代码文件中引用该改动图像资源,则模块工程的代码管理设备可确定该模块工程的代码文件未通过图像资源检测。
若模块工程的代码文件未通过图像资源检测,则可以第二方式如异常退出方式退出该模块工程的图像资源检测。
在另外的一些可能示例中,该图像资源检测方法还可包括:
模块工程的代码管理设备返回错误指示信息,该错误指示信息用以指示该功能模块的代码文件中引用了该主工程的代码文件中改动的图像资源。
在该示例中,模块工程的代码管理设备可将错误指示信息返回至该分布式版本控制系统对应的网页页面如pipeline页面进行展示,以提醒用户该改动图像资源被误改动,提醒用户恢复对该改动图像资源的误改动。
下述对用以执行的本申请所提供的图像资源检测方法的装置、设备及存储介质等进行说明,其具体的实现过程以及技术效果参见上述,下述不再赘述。
图6为本申请实施例提供的一种图像资源检测装置的示意图,如图6所示,该图像资源检测装置600可包括:
获取模块601,用于获取主工程的代码文件的改动说明信息。
确定模块602,用于根据该改动说明信息,确定改动图像资源的标识。
发送模块603,用于向该主工程关联的每个模块工程的管理设备发送图像资源检测请求,其中,该图像资源检测请求包括:该改动图像资源的标识。
该图像资源检测请求用于触发该每个模块工程的管理设备根据该改动图像资源的标识,在该每个模块工程的代码文件中进行搜索,并根据搜索结果,确定该每个模块工程的代码文件是否引用该改动图像资源。
可选的,获取模块601,具体用于响应代码提交请求,获取该代码提交请求中的该改动说明信息。
可选的,确定模块602,具体用于从该改动说明信息中确定该改动图像资源的条目信息;对该条目信息进行预处理,得到至少一个图像资源的标识;该改动图像资源的标识包括:该至少一个图像资源的标识。
可选的,确定模块602,具体用于使用正则表达式从该改动说明信息中过滤出以预设改动类型标识开头,以预设图像资源标识结尾的目标条目信息;确定该目标条目信息为该改动图像资源的条目信息。
可选的,确定模块602,具体用于去除该条目信息中的路径信息、图像资源类型信息,得到所述至少一个图像资源的标识。
可选的,若该改动图像资源包括:多个图像资源,则确定模块602,还用于对该多个图像资源的标识进行拼接,得到该多个图像资源的标识字符串;该改动图像资源的标识为:该标识字符串。
可选的,确定模块602,具体用于根据预设的分隔符,对该多个图像资源的标识进行拼接,得到该标识字符串,该标识字符串中相邻两个图像资源的标识通过该分隔符间隔开。
可选的,该图像资源检测装置600还可包括:
读取模块,用于在发送模块603向该主工程关联的每个模块工程的代码管理设备发送图像资源检测请求之前,读取该主工程的模块配置信息;
获取模块601,还用于获取模块配置信息中每个模块工程的信息的访问标识以及令牌信息。
相应的,发送模块603,具体用于根据该访问标识和该令牌信息,向该每个模块工程的代码管理设备发送该图像资源检测请求。
可选的,该模块配置信息为模块配置列表;获取模块601,还用于获取该每个模块工程的访问标识以及令牌信息;
该图像资源检测装置还可包括:
生成模块,用于生成该模块配置列表,该模块配置列表包括:该每个模块工程的访问标识以及令牌信息。
可选的,发送模块603,具体用于向该每个模块工程的代码管理设备的该访问标识发送发布请求,该发布请求的请求头中携带有该令牌信息,该发布请求的主体包括:该改动图像资源的标识;该图像资源检测请求为该发布请求。
可选的,该改动图像资源的改动类型包括:删除,和/或,修改。
上述装置用于执行前述实施例中任一主工程的代码管理设备提供的图像资源检测方法,其实现原理和技术效果类似,在此不再赘述。
图7为本申请实施例提供的另一种图像资源检测装置的示意图,如图7所示,该图像资源检测装置700可包括:
接收模块701,用于接收主工程的管理设备发送的图像资源检测请求,其中,该图像资源检测请求包括:该改动图像资源的标识,该改动图像资源的标识为该主工程的管理设备根据该主工程的代码文件的改动说明信息所获取的图像资源标识。
搜索模块702,用于根据该改动图像资源的标识,在模块工程的代码文件中进行搜索。
确定模块703,用于根据搜索结果,确定该模块工程的代码文件是否引用该改动图像资源。
可选的,若该改动图像资源的标识为标识字符串;搜索模块702,具体用于将该标识字符串转换为图像资源列表,该图像资源列表包括:多个图像资源的标识;根据该每个图像资源的标识,在该模块工程的代码文件中进行搜索。
可选的,该模块工程的代码文件可包括:多个分支代码文件,搜索模块702,具体用于根据该改动图像资源的标识,在该多个分支代码文件中进行搜索。
确定模块703,具体用于若在该多个分支代码文件中均未搜索到该改动图像资源的标识,则确定该模块工程的代码文件未引用该改动图像资源;若在至少一个分支代码文件中搜索到该改动图像资源的标识,则确定该模块工程的代码文件引用该改动图像资源。
可选的,该图像资源检测装置700还包括:
获取模块,用于在搜索模块702根据该改动图像资源的标识,在该多个分支代码文件中进行搜索之前,采用复制或拉取的方式,获取该多个分支代码文件。
可选的,该图像资源检测装置700还包括:
输出模块,用于若在至少一个分支代码文件中搜索到该改动图像资源的标识,输出该模块工程的代码文件中引用该动图像资源的位置信息,该位置信息包括:引用该改动图像资源的分支代码文件的文件名。
可选的,确定模块703,还用于若模块工程的代码文件中未引用该改动图像资源,则确定该模块工程的代码文件通过图像资源检测。
可选的,确定模块703,还用于若该模块工程的代码文件中引用所述改动图像资源,则确定该模块工程的代码文件未通过图像资源检测。
可选的,该图像资源检测装置700还包括:
返回模块,用于返回错误指示信息,该错误指示信息用以指示该功能模块的代码文件中引用了该主工程的代码文件中改动的图像资源。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
图8为本申请实施例提供的一种主工程的代码管理设备的示意图,该主工程的代码管理设备可以主工程的代码文件对应的仓库服务器。
该主工程的代码管理设备800包括:存储器801、处理器802。存储器801和处理器802通过总线连接。
存储器801用于存储程序,处理器802调用存储器801存储的程序,以执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
图9为本申请实施例提供的一种模块工程的代码管理设备的示意图,该模块工程的代码管理设备可以模块工程的代码文件对应的仓库服务器。
该模块工程的代码管理设备900包括:存储器901、处理器902。存储器901和处理器902通过总线连接。
存储器901用于存储程序,处理器902调用存储器901存储的程序,以执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
可选地,本申请还提供一种程序产品,例如计算机可读存储介质,包括程序,该程序在被处理器执行时用于执行上述任一所述的图像资源检测方法的实施例。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (24)

1.一种图像资源检测方法,其特征在于,包括:
获取主工程的代码文件的改动说明信息;
根据所述改动说明信息,确定改动图像资源的标识;
向所述主工程关联的每个模块工程的代码管理设备发送图像资源检测请求,其中,所述图像资源检测请求包括:所述改动图像资源的标识;所述图像资源检测请求用于触发所述每个模块工程的代码管理设备根据所述改动图像资源的标识,在所述每个模块工程的代码文件中进行搜索,并根据搜索结果,确定所述每个模块工程的代码文件是否引用所述改动图像资源。
2.根据权利要求1所述的方法,其特征在于,所述获取主工程的代码文件的改动说明信息,包括:
响应代码提交请求,获取所述代码提交请求中的所述改动说明信息。
3.根据权利要求1所述的方法,其特征在于,所述根据所述改动说明信息,确定改动图像资源的标识,包括:
从所述改动说明信息中确定所述改动图像资源的条目信息;
对所述条目信息进行预处理,得到所述条目信息中的至少一个图像资源的标识;所述改动图像资源的标识包括:所述至少一个图像资源的标识。
4.根据权利要求3所述的方法,其特征在于,所述从所述改动说明信息中确定所述改动图像资源的条目信息,包括:
使用正则表达式从所述改动说明信息中过滤出以预设改动类型标识开头,以预设图像资源标识结尾的目标条目信息;
确定所述目标条目信息为所述改动图像资源的条目信息。
5.根据权利要求3所述的方法,其特征在于,所述对所述改动图像资源的条目信息进行预处理,得到至少一个图像资源的标识,包括:
去除所述条目信息中的路径信息、图像资源类型信息,得到所述至少一个图像资源的标识。
6.根据权利要求3所述的方法,其特征在于,若所述改动图像资源包括:多个图像资源,则所述根据所述改动说明信息,确定改动图像资源的标识,还包括:
对所述多个图像资源的标识进行拼接,得到所述多个图像资源的标识字符串;所述改动图像资源的标识为:所述标识字符串。
7.根据权利要求6所述的方法,其特征在于,所述对所述多个图像资源的标识进行拼接,得到所述多个图像资源的标识字符串,包括:
根据预设的分隔符,对所述多个图像资源的标识进行拼接,得到所述标识字符串,所述标识字符串中相邻两个图像资源的标识通过所述分隔符间隔开。
8.根据权利要求1所述的方法,其特征在于,所述向所述主工程关联的每个模块工程的代码管理设备发送图像资源检测请求,包括:
读取所述主工程的模块配置信息;
获取所述模块配置信息中所述每个模块工程的访问标识以及令牌信息;
根据所述访问标识和所述令牌信息,向所述每个模块工程的代码管理设备发送所述图像资源检测请求。
9.根据权利要求8所述的方法,其特征在于,所述模块配置信息为模块配置列表;所述读取所述主工程的模块配置信息之前,所述方法还包括:
获取所述每个模块工程的访问标识以及令牌信息;
生成所述模块配置列表,所述模块配置列表包括:所述每个模块工程的访问标识以及令牌信息。
10.根据权利要求8所述的方法,其特征在于,所述根据所述访问标识和所述令牌信息,向所述每个模块工程的代码管理设备发送所述图像资源检测请求,包括:
向所述每个模块工程的代码管理设备的所述访问标识发送发布请求,所述发布请求的请求头中携带有所述令牌信息,所述发布请求的主体包括:所述改动图像资源的标识;
所述图像资源检测请求为所述发布请求。
11.根据权利要求1-10中任一所述的方法,其特征在于,所述改动图像资源的改动类型包括:删除,和/或,修改。
12.一种图像资源检测方法,其特征在于,包括:
接收主工程的代码管理设备发送的图像资源检测请求,其中,所述图像资源检测请求包括:改动图像资源的标识,所述改动图像资源的标识为所述主工程的代码管理设备根据所述主工程的代码文件的改动说明信息所确定的图像资源标识;
根据所述改动图像资源的标识,在模块工程的代码文件中进行搜索;
根据搜索结果,确定所述模块工程的代码文件是否引用所述改动图像资源。
13.根据权利要求12所述的方法,其特征在于,若所述改动图像资源的标识为标识字符串;所述根据所述改动图像资源的标识,在模块工程的代码文件中进行搜索,包括:
将所述标识字符串,转换为图像资源列表,所述图像资源列表包括:多个图像资源的标识;
根据每个图像资源的标识,在所述模块工程的代码文件中进行搜索。
14.根据权利要求12所述的方法,其特征在于,所述模块工程的代码文件包括:多个分支代码文件;所述根据所述改动图像资源的标识,在模块工程的代码中进行搜索,包括:
根据所述改动图像资源的标识,在所述多个分支代码文件中进行搜索;
所述根据搜索结果,确定所述模块工程的代码文件是否引用所述改动图像资源,包括:
若在所述多个分支代码文件中均未搜索到所述改动图像资源的标识,则确定所述模块工程的代码文件未引用所述改动图像资源;
若在至少一个分支代码文件中搜索到所述改动图像资源的标识,则确定所述模块工程的代码文件引用所述改动图像资源。
15.根据权利要求14所述的方法,其特征在于,所述根据所述改动图像资源的标识,在所述多个分支代码文件中进行搜索之前,所述方法还包括:
采用复制或拉取的方式,获取所述多个分支代码文件。
16.根据权利要求14所述的方法,其特征在于,若在至少一个分支代码文件中搜索到所述改动图像资源的标识,所述方法还包括:
输出所述模块工程的代码文件中引用所述改动图像资源的位置信息;所述位置信息包括:引用所述改动图像资源的分支代码文件的文件名。
17.根据权利要求14所述的方法,其特征在于,所述方法还包括:
若所述模块工程的代码文件中未引用所述改动图像资源,则确定所述模块工程的代码文件通过图像资源检测。
18.根据权利要求14所述的方法,其特征在于,所述方法还包括:
若所述模块工程的代码文件中引用所述改动图像资源,则确定所述模块工程的代码文件未通过图像资源检测。
19.根据权利要求14所述的方法,其特征在于,所述方法还包括:
返回错误指示信息,所述错误指示信息用以指示所述模块工程的代码文件中引用了所述主工程的代码文件中改动的图像资源。
20.一种图像资源检测装置,其特征在于,包括:
获取模块,用于获取主工程的代码文件的改动说明信息;
确定模块,用于根据所述改动说明信息,确定改动图像资源的标识;
发送模块,用于向所述主工程关联的每个模块工程的管理设备发送图像资源检测请求,其中,所述图像资源检测请求包括:所述改动图像资源的标识;所述图像资源检测请求用于触发所述每个模块工程的管理设备根据所述改动图像资源的标识,在所述每个模块工程的代码文件中进行搜索,并根据搜索结果,确定所述每个模块工程的代码文件是否引用所述改动图像资源。
21.一种图像资源检测装置,其特征在于,包括:
接收模块,用于接收主工程的管理设备发送的图像资源检测请求,其中,所述图像资源检测请求包括:改动图像资源的标识,所述改动图像资源的标识为所述主工程的管理设备根据所述主工程的代码文件的改动说明信息所获取的图像资源标识;
搜索模块,用于根据所述改动图像资源的标识,在模块工程的代码文件中进行搜索;
确定模块,用于根据搜索结果,确定所述模块工程的代码文件是否引用所述改动图像资源。
22.一种主工程的代码管理设备,其特征在于,包括:存储器和处理器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述权利要求1-11任一项所述的图像资源检测方法。
23.一种模块工程的代码管理设备,其特征在于,包括:存储器和处理器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述权利要求12-19任一项所述的图像资源检测方法。
24.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被读取并执行时,实现上述权利要求1-19任一项所述的图像资源检测方法。
CN202010584719.XA 2020-06-23 2020-06-23 图像资源检测方法、装置、设备及存储介质 Active CN111737504B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010584719.XA CN111737504B (zh) 2020-06-23 2020-06-23 图像资源检测方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010584719.XA CN111737504B (zh) 2020-06-23 2020-06-23 图像资源检测方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN111737504A true CN111737504A (zh) 2020-10-02
CN111737504B CN111737504B (zh) 2023-09-15

Family

ID=72651694

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010584719.XA Active CN111737504B (zh) 2020-06-23 2020-06-23 图像资源检测方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111737504B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113031960A (zh) * 2021-03-18 2021-06-25 北京达佳互联信息技术有限公司 代码编译方法、装置、服务器及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0028084D0 (en) * 2000-11-17 2001-01-03 Q Set Res And Dev Ltd A resource control facility
US20090217145A1 (en) * 2008-02-27 2009-08-27 Actionthis Limited Methods and devices for post processing rendered web pages and handling requests of post processed web pages
CN105912342A (zh) * 2016-04-29 2016-08-31 乐视控股(北京)有限公司 基于overlay机制的APK开发方法及系统
CN106547519A (zh) * 2015-09-16 2017-03-29 中国移动通信集团公司 信息处理方法及系统
CN106599151A (zh) * 2016-12-07 2017-04-26 Tcl集团股份有限公司 一种Android工程无用资源并行清理的方法及系统
CN109542445A (zh) * 2017-08-01 2019-03-29 北京京东尚科信息技术有限公司 一种Android插件化开发的方法和装置
CN110555317A (zh) * 2019-09-09 2019-12-10 山东浪潮通软信息科技有限公司 一种应用文件更改处理方法、装置及系统
CN110597549A (zh) * 2019-09-20 2019-12-20 网易(杭州)网络有限公司 代码工程中的搜索方法、装置、设备及可读存储介质
CN111258587A (zh) * 2020-01-17 2020-06-09 苏宁云计算有限公司 一种安卓应用插件化的实现方法、装置、设备及存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0028084D0 (en) * 2000-11-17 2001-01-03 Q Set Res And Dev Ltd A resource control facility
US20090217145A1 (en) * 2008-02-27 2009-08-27 Actionthis Limited Methods and devices for post processing rendered web pages and handling requests of post processed web pages
CN106547519A (zh) * 2015-09-16 2017-03-29 中国移动通信集团公司 信息处理方法及系统
CN105912342A (zh) * 2016-04-29 2016-08-31 乐视控股(北京)有限公司 基于overlay机制的APK开发方法及系统
WO2017185606A1 (zh) * 2016-04-29 2017-11-02 乐视控股(北京)有限公司 基于overlay机制的APK开发方法及系统
CN106599151A (zh) * 2016-12-07 2017-04-26 Tcl集团股份有限公司 一种Android工程无用资源并行清理的方法及系统
CN109542445A (zh) * 2017-08-01 2019-03-29 北京京东尚科信息技术有限公司 一种Android插件化开发的方法和装置
CN110555317A (zh) * 2019-09-09 2019-12-10 山东浪潮通软信息科技有限公司 一种应用文件更改处理方法、装置及系统
CN110597549A (zh) * 2019-09-20 2019-12-20 网易(杭州)网络有限公司 代码工程中的搜索方法、装置、设备及可读存储介质
CN111258587A (zh) * 2020-01-17 2020-06-09 苏宁云计算有限公司 一种安卓应用插件化的实现方法、装置、设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113031960A (zh) * 2021-03-18 2021-06-25 北京达佳互联信息技术有限公司 代码编译方法、装置、服务器及存储介质
CN113031960B (zh) * 2021-03-18 2024-04-30 北京达佳互联信息技术有限公司 代码编译方法、装置、服务器及存储介质

Also Published As

Publication number Publication date
CN111737504B (zh) 2023-09-15

Similar Documents

Publication Publication Date Title
CN101986292B (zh) 根据图像处理表单的方法和系统
US8140905B2 (en) Incremental problem determination and resolution in cloud environments
JP6919569B2 (ja) ログ分析システム、方法、及び記録媒体
EP1884872B1 (en) Method and system for using application development data to create support documents
CN111144839B (zh) 一种项目构建方法、持续集成系统及终端设备
US20110307488A1 (en) Information processing apparatus, information processing method, and program
CN109088773B (zh) 故障自愈方法、装置、服务器及存储介质
CN107783766B (zh) 对应用程序的文件进行清理的方法和装置
CN112905323B (zh) 数据处理方法、装置、电子设备及存储介质
CN110191000A (zh) 一种数据处理方法、消息追踪监控方法和分布式系统
CN111796855B (zh) 一种增量版本更新方法、装置、存储介质及计算机设备
CN113157315A (zh) 一种软件不同版本的差异信息识别方法、装置、设备及介质
CN111949607A (zh) 一种udt文件的监控方法、系统和装置
CN111737504A (zh) 图像资源检测方法、装置、设备及存储介质
CN113568604B (zh) 风控策略的更新方法、装置及计算机可读存储介质
CN116088846A (zh) 一种持续集成代码格式的处理方法、相关装置及设备
CN112800194A (zh) 一种接口变更识别方法、装置、设备及存储介质
CN112328246A (zh) 页面组件生成方法、装置、计算机设备及存储介质
JP2009122754A (ja) ソフトウェア開発支援装置
CN111309713A (zh) Maven开源软件库的生成方法、装置及存储介质
CN113641523B (zh) 一种日志处理方法及装置
CN112765041B (zh) 游戏自动化测试方法、装置及电子设备
CN109033831A (zh) 一种病毒检测方法、装置、电子设备及存储介质
CN113342749A (zh) 文件路径匹配方法、装置、设备及计算机可读存储介质
CN114816425B (zh) 将自动化语言程序转换为lua语言程序的方法和系统

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