CN111813378A - 一种代码库构建系统、方法和相关装置 - Google Patents

一种代码库构建系统、方法和相关装置 Download PDF

Info

Publication number
CN111813378A
CN111813378A CN202010650579.1A CN202010650579A CN111813378A CN 111813378 A CN111813378 A CN 111813378A CN 202010650579 A CN202010650579 A CN 202010650579A CN 111813378 A CN111813378 A CN 111813378A
Authority
CN
China
Prior art keywords
project
software
file
code
local storage
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
CN202010650579.1A
Other languages
English (en)
Other versions
CN111813378B (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 Dili Technology Co ltd
Original Assignee
Beijing Dili 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 Dili Technology Co ltd filed Critical Beijing Dili Technology Co ltd
Priority to CN202010650579.1A priority Critical patent/CN111813378B/zh
Publication of CN111813378A publication Critical patent/CN111813378A/zh
Application granted granted Critical
Publication of CN111813378B publication Critical patent/CN111813378B/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/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种代码库构建系统、方法和相关装置,该代码库构建系统包括软件项目采集器、软件项目分析器和代码库构建器;软件项目采集器用于根据不同的采集需求采集多源异构软件项目作为多个本地存储软件项目;软件项目分析器用于根据不同的分析需求分析多个本地存储软件项目,获得多个项目文件和对应的多个项目文件元信息;代码库构建器用于生成每个项目文件的文件唯一标识,基于文件唯一标识和多个项目文件元信息对多个项目文件进行无冗余的本地存储和索引,以构建代码库。代码库构建系统在构建代码库时,兼容不同来源的异构软件项目,满足对项目类型和代码数量的海量需求,且在保留项目文件元信息的前提下实现项目文件的无冗余本地存储。

Description

一种代码库构建系统、方法和相关装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种代码库构建系统、方法和相关装置。
背景技术
为了实现软件产品的代码溯源分析和自主可控等级评测,需要能够提供基础性原始代码的海量代码库,该代码库中代码数量和代码质量直接影响上述代码溯源分析和自主可控等级评测的效率和准确性。
现有技术中,通常是下载各个开源软件项目的特定版本压缩包以形成代码库。但是,发明人经过研究发现,该代码库存在架构设计不良、代码数量不足、代码类型覆盖不充分、代码冗余、代码开发元信息丢失等严重问题。利用该代码库进行软件产品的代码溯源分析和自主可控等级评测时,代码溯源分析和自主可控等级评测的效率和准确性会有严重降低。
发明内容
有鉴于此,本申请实施例提供一种代码库构建系统、方法和相关装置,在构建代码库过程中,能够兼容不同来源的异构软件项目,满足对项目类型和代码数量的海量需求,且在保留项目文件元信息的前提下实现项目文件的无冗余本地存储。该代码库构建系统构建的代码库可以提高软件产品的代码溯源分析和自主可控等级评测的效率和准确性。
第一方面,本申请实施例提供了一种代码库构建系统,所述代码库构建系统包括:
软件项目采集器、软件项目分析器和代码库构建器;
所述软件项目采集器,用于根据不同的采集需求采集多源异构软件项目作为多个本地存储软件项目;
所述软件项目分析器,用于根据不同的分析需求分析多个所述本地存储软件项目,获得多个项目文件和对应的多个项目文件元信息;
所述代码库构建器,用于生成每个所述项目文件的文件唯一标识,基于所述文件唯一标识和多个所述项目文件元信息对多个所述项目文件进行无冗余的本地存储和索引,以构建代码库。
可选的,所述软件项目采集器包括采集管理引擎和多个采集客户端;
所述采集管理引擎,用于根据所述不同的采集需求启动多个所述采集客户端;
多个所述采集客户端,用于利用不同的采集方式采集所述多源异构软件项目作为多个所述本地存储软件项目。
可选的,所述软件项目分析器包括项目分析引擎和多个项目分析器;
所述项目分析引擎,用于根据所述不同的分析需求启动多个所述项目分析器;
多个所述项目分析器,用于利用不同的项目管理方式分析多个所述本地存储软件项目,获得多个所述项目文件和对应的多个所述项目文件元信息。
可选的,所述代码库构建器包括文件唯一性标识引擎和文件本地存储索引;
所述文件唯一性标识引擎,用于利用预设算法生成每个所述项目文件的文件唯一标识;
所述文件本地存储索引,用于基于所述文件唯一标识对多个所述项目文件进行无冗余的本地存储作为多个本地存储项目文件,并建立多个所述本地存储项目文件与多个所述项目文件元信息之间的索引,以构建所述代码库。
可选的,所述预设算法包括哈希算法或者其他编写算法,所述哈希算法包括信息摘要算法或安全散列算法。
可选的,所述不同的采集需求与所述不同的分析需求之间存在对应关系。
可选的,所述软件项目采集器、所述软件项目分析器和所述代码库构建器按照部署需求部署在一台或者多台计算机上。
第二方面,本申请实施例提供了一种代码库构建方法,所述方法应用于上述第一方面任意一项所述的代码库构建系统,包括:
根据不同的采集需求采集多源异构软件项目作为多个本地存储软件项目;
根据不同的分析需求分析多个所述本地存储软件项目,获得多个项目文件和对应的多个项目文件元信息;
生成每个所述项目文件的文件唯一标识,基于所述文件唯一标识和多个所述项目文件元信息对多个所述项目文件进行无冗余的本地存储和索引,以构建代码库。
第三方面,本申请实施例提供了一种终端设备,其特征在于,所述终端设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行上述第二方面所述的代码库构建方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行上述第二方面所述的代码库构建方法。
与现有技术相比,本申请至少具有以下优点:
采用本申请实施例的技术方案,代码库构建系统包括软件项目采集器、软件项目分析器和代码库构建器;软件项目采集器用于根据不同的采集需求采集多源异构软件项目作为多个本地存储软件项目;软件项目分析器用于根据不同的分析需求分析多个本地存储软件项目,获得多个项目文件和对应的多个项目文件元信息;代码库构建器用于生成每个项目文件的文件唯一标识,基于文件唯一标识和多个项目文件元信息对多个项目文件进行无冗余的本地存储和索引,以构建代码库。由此可见,该代码库构建系统由软件项目采集器、软件项目分析器和代码库构建器组成,在构建代码库过程中,能够兼容不同来源的异构软件项目,满足对项目类型和代码数量的海量需求,且在保留项目文件元信息的前提下实现项目文件的无冗余本地存储。该代码库构建系统构建的代码库可以提高软件产品的代码溯源分析和自主可控等级评测的效率和准确性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例中一种应用场景所涉及的系统框架示意图;
图2为本申请实施例提供的一种代码库构建系统的结构示意图;
图3为本申请实施例提供的另一种代码库构建系统的结构示意图;
图4为本申请实施例提供的一种代码库构建方法的流程示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
现阶段,通常是下载各个开源软件项目的特定版本压缩包以形成代码库,用于实现软件产品的代码溯源分析和自主可控等级评测。但是,发明人经过研究发现,该代码库存在架构设计不良、代码数量不足、代码类型覆盖不充分、代码冗余、代码开发元信息丢失等严重问题。利用该代码库进行软件产品的代码溯源分析和自主可控等级评测时,代码溯源分析和自主可控等级评测的效率和准确性会有严重降低。
为了解决这一问题,在本申请实施例中,代码库构建系统包括软件项目采集器、软件项目分析器和代码库构建器;软件项目采集器用于根据不同的采集需求采集多源异构软件项目作为多个本地存储软件项目;软件项目分析器用于根据不同的分析需求分析多个本地存储软件项目,获得多个项目文件和对应的多个项目文件元信息;代码库构建器用于生成每个项目文件的文件唯一标识,基于文件唯一标识和多个项目文件元信息对多个项目文件进行无冗余的本地存储和索引,以构建代码库。由此可见,该代码库构建系统由软件项目采集器、软件项目分析器和代码库构建器组成,在构建代码库过程中,能够兼容不同来源的异构软件项目,满足对项目类型和代码数量的海量需求,且在保留项目文件元信息的前提下实现项目文件的无冗余本地存储。该代码库构建系统构建的代码库可以提高软件产品的代码溯源分析和自主可控等级评测的效率和准确性。
举例来说,本申请实施例的场景之一,可以是应用到如图1所示的场景中,该场景包括多个异构软件项目源101和本申请实施例提供的代码库构建系统102,该代码库构建系统102可以从该多个异构软件项目源101获取多源异构软件项目以构建代码库。上述场景仅是本申请实施例提供的一个场景示例,本申请实施例并不限于此场景。
下面结合附图,通过实施例来详细说明本申请实施例中代码库构建系统、方法和相关装置的具体实现方式。
示例性系统
参见图2,示出了本申请实施例中一种代码库构建系统的结构示意图。在本实施例中,代码库构建系统200例如具体可以包括:
软件项目采集器201、软件项目分析器202和代码库构建器203;
所述软件项目采集器201,用于根据不同的采集需求采集多源异构软件项目作为多个本地存储软件项目;
所述软件项目分析器202,用于根据不同的分析需求分析多个所述本地存储软件项目,获得多个项目文件和对应的多个项目文件元信息;
所述代码库构建器203,用于生成每个所述项目文件的文件唯一标识,基于所述文件唯一标识和多个所述项目文件元信息对多个所述项目文件进行无冗余的本地存储和索引,以构建代码库。
由于简单的通过下载各个开源软件项目的特定版本压缩包方式形成的代码库,存在架构设计不良、代码数量不足、代码类型覆盖不充分、代码冗余、代码开发元信息丢失等严重问题;该代码库不利于软件产品的代码溯源分析和自主可控等级评测,严重影响效率和准确率。因此,在本申请实施例中,需要构建一个能够兼容不同来源的异构软件项目,并满足对代码数量和代码类型的海量需求,且在保留项目文件元信息的前提下实现项目文件的无冗余本地存储的代码库。为了实现该代码库的构建,需要设置实现多源异构软件项目的采集的软件项目采集器201,实现多源异构软件项目分析的软件项目分析器202,以及用于保留项目文件元信息并无冗余本地存储项目文件的代码库构建器203;即,软件项目采集器201、软件项目分析器202和代码库构建器203组成代码库构建系统200。
在本申请实施例中,既可以将软件项目采集器201、软件项目分析器202和代码库构建器203部署在一台多台计算机上,该计算机为通用计算机;也可以将软件项目采集器201、软件项目分析器202和代码库构建器203分别部署在不同计算机上,部署的多台计算机形成计算机集群。即,在本申请实施例一种可选的实施方式中,所述软件项目采集器201、所述软件项目分析器202和所述代码库构建器203按照部署需求部署在一台或者多台计算机上。
在本申请实施例中,软件项目采集器201按照采集管理功能和采集执行功能可以设置采集管理引擎和多个采集客户端。其中,采集管理引擎能够根据不同的采集需求启动多个采集客户端,以便多个采集客户端具体执行多源异构软件项目的采集。设置多个采集客户端的目的是为了适应多个异构软件项目源中对应的不同采集方式,例如,在采集开源基金会、软件镜像仓库、代码托管平台等多个异构软件项目源中的软件项目时,多个异构软件项目源的采集协议不同,需要使用不同的采集方式,不同的采集方式对应的采集客户端不同。即,在本申请实施例一种可选的实施方式中,所述软件项目采集器201包括采集管理引擎和多个采集客户端;所述采集管理引擎,用于根据所述不同的采集需求启动多个所述采集客户端;多个所述采集客户端,用于利用不同的采集方式采集所述多源异构软件项目作为多个所述本地存储软件项目。
作为一种示例,针对托管在github.com平台上的开源软件项目,软件项目采集器201中采集客户端需要利用git版本采集协议对应的采集方式实现该开源软件项目的采集,比如可以通过调用git clone命令下载完整该开源软件项目,或者调用git pull命令增量更新该开源软件项目。
在本申请实施例中,软件项目分析器202按照分析管理功能和分析执行功能可以设置项目分析引擎和多个项目分析器。其中,项目分析引擎能够根据不同的分析需求启动多个项目分析器,以便多个项目分析器具体执行多源异构软件项目的分析,上述不同的采集需求与不同的分析需求之间存在对应关系。因此,设置多个项目分析器的目的同样是为了适应利用不同采集方式所采集的多源异构软件项目。即,多个本地存储软件项目采集完成后,多个本地存储软件项目对应的项目管理协议不同,需要利用不同项目管理方式的分析器,来分析以得到项目包含的文件和对应的文件的元信息。即,在本申请实施例一种可选的实施方式中,所述软件项目分析器202包括项目分析引擎和多个项目分析器;所述项目分析引擎,用于根据所述不同的分析需求启动多个所述项目分析器;多个所述项目分析器,用于利用不同的项目管理方式分析多个所述本地存储软件项目,获得多个所述项目文件和对应的多个所述项目文件元信息。
作为一种示例,在上述示例的基础上,针对github.com平台上的开源软件项目对应的本地存储软件项目,软件项目分析器202中项目分析器需要利用git版本项目管理协议对应的项目管理方式实现该本地存储软件项目的分析,比如可以通过调用git checkout、git log、git diff等命令分析该本地存储软件项目,以获取指定branch或者tag的项目文件、项目的更新日志、修改差异等信息。基于github项目管理工具的使用或者基于git协议开发的客户端,可以获取git项目、branch/tag、commit、blob之间的关系,并进一步解析出来项目、文件的SHA-1校验和、作者的用户和电子邮件地址、提交时间、文件增加/内容修改/文件删除等提交活动、提交注释等,获得git项目文件和对应的项目文件元信息。
在本申请实施例中,上述多个项目文件与多个项目文件元信息之间存在对应关系。首先,为了实现项目文件的无冗余本地存储,考虑得到项目文件的文件唯一标识,当两个不同项目文件元信息对应的项目文件相同时,其文件唯一标识是一致的,基于该文件唯一标识,只本地存储其中一个项目文件作为本地存储项目文件,即可实现项目文件的无冗余本地存储,因此,在代码库构建器203首先需要设置一个用于生成项目文件的文件唯一标识的文件唯一性标识引擎。其次,为了存储项目文件和项目文件元信息构建代码库,且为了后续在实现软件产品的代码溯源分析和自主可控等级评测时,明确项目文件相关的各个项目文件元信息,在无冗余的本地存储多个项目文件得到多个本地存储项目文件的基础之上,多个项目文件元信息均需要保留,并需要建立多个本地存储项目文件与多个项目文件元信息之间的映射关系以形成索引。因此,在本申请实施例一种可选的实施方式中,所述代码库构建器203包括文件唯一性标识引擎和文件本地存储索引;所述文件唯一性标识引擎,用于利用预设算法生成每个所述项目文件的文件唯一标识;所述文件本地存储索引,用于基于所述文件唯一标识对多个所述项目文件进行无冗余的本地存储作为多个本地存储项目文件,并建立多个所述本地存储项目文件与多个所述项目文件元信息之间的索引,以构建所述代码库。
在本申请实施例中,用于生成文件唯一性标识的预设算法可以是哈希算法,常见的哈希算法例如可以是信息摘要算法MD5或者安全散列算法SHA1。当然,本申请实施例并不具体限制预设算法,预设算法还可以是用于生成文件唯一性标识的其他编写算法。即,在本申请实施例一种可选的实施方式中,所述预设算法包括哈希算法或者其他编写算法,所述哈希算法包括信息摘要算法或安全散列算法。
作为一种示例,如图3所示的另一种代码库构建系统的结构示意图。在图2的基础上,软件项目采集器201包括采集管理引擎2011和多个采集客户端2012、软件项目分析器202包括项目分析引擎2021和多个项目分析器2022和代码库构建器203包括文件唯一性标识引擎2031和文件本地存储索引2032。
通过本实施例提供的各种实施方式,代码库构建系统包括软件项目采集器、软件项目分析器和代码库构建器;软件项目采集器用于根据不同的采集需求采集多源异构软件项目作为多个本地存储软件项目;软件项目分析器用于根据不同的分析需求分析多个本地存储软件项目,获得多个项目文件和对应的多个项目文件元信息;代码库构建器用于生成每个项目文件的文件唯一标识,基于文件唯一标识对多个项目文件和多个项目文件元信息进行无冗余的本地存储和索引,以构建代码库。由此可见,该代码库构建系统由软件项目采集器、软件项目分析器和代码库构建器组成,在构建代码库过程中,能够兼容不同来源的异构软件项目,满足对项目类型和代码数量的海量需求,且在保留项目文件元信息的前提下实现项目文件的无冗余本地存储。该代码库构建系统构建的代码库可以提高软件产品的代码溯源分析和自主可控等级评测的效率和准确性。
示例性方法
参见图4,示出了本申请实施例中一种代码库构建方法的流程示意图。在本实施例中,所述方法例如可以包括以下步骤:
步骤401:根据不同的采集需求采集多源异构软件项目作为多个本地存储软件项目。
在本申请实施例一种可选的实施方式中,所述步骤401例如具体可以为:根据所述不同的采集需求,利用不同的采集方式采集所述多源异构软件项目作为多个所述本地存储软件项目。
步骤402:根据不同的分析需求分析多个所述本地存储软件项目,获得多个项目文件和对应的多个项目文件元信息。
在本申请实施例一种可选的实施方式中,所述步骤402例如具体可以为:根据所述不同的分析需求,利用不同的项目管理方式分析多个所述本地存储软件项目,获得多个所述项目文件和对应的多个所述项目文件元信息。
步骤403:生成每个所述项目文件的文件唯一标识,基于所述文件唯一标识和多个所述项目文件元信息对多个所述项目文件进行无冗余的本地存储和索引,以构建代码库。
在本申请实施例一种可选的实施方式中,所述步骤403例如具体可以包括以下步骤:
步骤A:利用预设算法生成每个所述项目文件的文件唯一标识;
步骤B:基于所述文件唯一标识对多个所述项目文件进行无冗余的本地存储作为多个本地存储项目文件;
步骤C:建立多个所述本地存储项目文件与多个所述项目文件元信息之间的索引,以构建所述代码库。
在本申请实施例一种可选的实施方式中,所述预设算法包括哈希算法或者其他编写算法,所述哈希算法包括信息摘要算法或安全散列算法。
在本申请实施例一种可选的实施方式中,所述不同的采集需求与所述不同的分析需求之间存在对应关系。
通过本实施例提供的各种实施方式,首先,根据不同的采集需求采集多源异构软件项目作为多个本地存储软件项目;然后,根据不同的分析需求分析多个本地存储软件项目,获得多个项目文件和对应的多个项目文件元信息;最后,生成每个项目文件的文件唯一标识,基于文件唯一标识和多个项目文件元信息对多个项目文件进行无冗余的本地存储和索引,以构建代码库。由此可见,在构建代码库过程中,能够兼容不同来源的异构软件项目,满足对项目类型和代码数量的海量需求,且在保留项目文件元信息的前提下实现项目文件的无冗余本地存储。代码库构建系统构建的代码库可以提高软件产品的代码溯源分析和自主可控等级评测的效率和准确性。
此外,本申请实施例还提供了一种终端设备,所述终端设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行上述方法实施例所述的代码库构建方法。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行上述方法实施例所述的代码库构建方法。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅是本申请的较佳实施例而已,并非对本申请作任何形式上的限制。虽然本申请已以较佳实施例揭露如上,然而并非用以限定本申请。任何熟悉本领域的技术人员,在不脱离本申请技术方案范围情况下,都可利用上述揭示的方法和技术内容对本申请技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本申请技术方案的内容,依据本申请的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本申请技术方案保护的范围内。

Claims (10)

1.一种代码库构建系统,其特征在于,包括:软件项目采集器、软件项目分析器和代码库构建器;
所述软件项目采集器,用于根据不同的采集需求采集多源异构软件项目作为多个本地存储软件项目;
所述软件项目分析器,用于根据不同的分析需求分析多个所述本地存储软件项目,获得多个项目文件和对应的多个项目文件元信息;
所述代码库构建器,用于生成每个所述项目文件的文件唯一标识,基于所述文件唯一标识和多个所述项目文件元信息对多个所述项目文件进行无冗余的本地存储和索引,以构建代码库。
2.根据权利要求1所述的代码库构建系统,其特征在于,所述软件项目采集器包括采集管理引擎和多个采集客户端;
所述采集管理引擎,用于根据所述不同的采集需求启动多个所述采集客户端;
多个所述采集客户端,用于利用不同的采集方式采集所述多源异构软件项目作为多个所述本地存储软件项目。
3.根据权利要求1所述的代码库构建系统,其特征在于,所述软件项目分析器包括项目分析引擎和多个项目分析器;
所述项目分析引擎,用于根据所述不同的分析需求启动多个所述项目分析器;
多个所述项目分析器,用于利用不同的项目管理方式分析多个所述本地存储软件项目,获得多个所述项目文件和对应的多个所述项目文件元信息。
4.根据权利要求1所述的代码库构建系统,其特征在于,所述代码库构建器包括文件唯一性标识引擎和文件本地存储索引;
所述文件唯一性标识引擎,用于利用预设算法生成每个所述项目文件的文件唯一标识;
所述文件本地存储索引,用于基于所述文件唯一标识对多个所述项目文件进行无冗余的本地存储作为多个本地存储项目文件,并建立多个所述本地存储项目文件与多个所述项目文件元信息之间的索引,以构建所述代码库。
5.根据权利要求4所述的代码库构建系统,其特征在于,所述预设算法包括哈希算法或者其他编写算法,所述哈希算法包括信息摘要算法或安全散列算法。
6.根据权利要求1-5任意一项所述的代码库构建系统,其特征在于,所述不同的采集需求与所述不同的分析需求之间存在对应关系。
7.根据权利要求1-5任意一项所述的代码库构建系统,其特征在于,所述软件项目采集器、所述软件项目分析器和所述代码库构建器按照部署需求部署在一台或者多台计算机上。
8.一种代码库构建方法,其特征在于,应用于权利要求1-7任意一项所述的代码库构建系统,所述方法包括:
根据不同的采集需求采集多源异构软件项目作为多个本地存储软件项目;
根据不同的分析需求分析多个所述本地存储软件项目,获得多个项目文件和对应的多个项目文件元信息;
生成每个所述项目文件的文件唯一标识,基于所述文件唯一标识和多个所述项目文件元信息对多个所述项目文件进行无冗余的本地存储和索引,以构建代码库。
9.一种终端设备,其特征在于,所述终端设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求8所述的代码库构建方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行权利要求8所述的代码库构建方法。
CN202010650579.1A 2020-07-08 2020-07-08 一种代码库构建系统、方法和相关装置 Active CN111813378B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010650579.1A CN111813378B (zh) 2020-07-08 2020-07-08 一种代码库构建系统、方法和相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010650579.1A CN111813378B (zh) 2020-07-08 2020-07-08 一种代码库构建系统、方法和相关装置

Publications (2)

Publication Number Publication Date
CN111813378A true CN111813378A (zh) 2020-10-23
CN111813378B CN111813378B (zh) 2023-03-21

Family

ID=72841927

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010650579.1A Active CN111813378B (zh) 2020-07-08 2020-07-08 一种代码库构建系统、方法和相关装置

Country Status (1)

Country Link
CN (1) CN111813378B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112685425A (zh) * 2021-01-08 2021-04-20 东云睿连(武汉)计算技术有限公司 一种数据资产元信息处理系统和方法
CN112783544A (zh) * 2021-01-11 2021-05-11 苏州浪潮智能科技有限公司 一种子代码库的本地跟踪代码分支建立方法和终端
CN112988217A (zh) * 2021-03-10 2021-06-18 北京大学 用于快速全网代码溯源检测的代码库设计方法及检测方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102760151A (zh) * 2012-04-05 2012-10-31 中国人民解放军国防科学技术大学 开源软件获取与搜索系统的实现方法
US20180373507A1 (en) * 2016-02-03 2018-12-27 Cocycles System for generating functionality representation, indexing, searching, componentizing, and analyzing of source code in codebases and method thereof
CN109710299A (zh) * 2018-12-14 2019-05-03 平安普惠企业管理有限公司 一种开源类库监控方法、装置、设备及计算机存储介质
CN110955758A (zh) * 2019-12-18 2020-04-03 中国电子技术标准化研究院 代码检测方法、代码检测服务器及索引服务器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102760151A (zh) * 2012-04-05 2012-10-31 中国人民解放军国防科学技术大学 开源软件获取与搜索系统的实现方法
US20180373507A1 (en) * 2016-02-03 2018-12-27 Cocycles System for generating functionality representation, indexing, searching, componentizing, and analyzing of source code in codebases and method thereof
CN109710299A (zh) * 2018-12-14 2019-05-03 平安普惠企业管理有限公司 一种开源类库监控方法、装置、设备及计算机存储介质
CN110955758A (zh) * 2019-12-18 2020-04-03 中国电子技术标准化研究院 代码检测方法、代码检测服务器及索引服务器

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112685425A (zh) * 2021-01-08 2021-04-20 东云睿连(武汉)计算技术有限公司 一种数据资产元信息处理系统和方法
CN112685425B (zh) * 2021-01-08 2022-06-17 东云睿连(武汉)计算技术有限公司 一种数据资产元信息处理系统和方法
CN112783544A (zh) * 2021-01-11 2021-05-11 苏州浪潮智能科技有限公司 一种子代码库的本地跟踪代码分支建立方法和终端
CN112783544B (zh) * 2021-01-11 2022-12-27 苏州浪潮智能科技有限公司 一种子代码库的本地跟踪代码分支建立方法和终端
CN112988217A (zh) * 2021-03-10 2021-06-18 北京大学 用于快速全网代码溯源检测的代码库设计方法及检测方法
CN112988217B (zh) * 2021-03-10 2023-11-17 北京大学 用于快速全网代码溯源检测的代码库设计方法及检测方法

Also Published As

Publication number Publication date
CN111813378B (zh) 2023-03-21

Similar Documents

Publication Publication Date Title
CN111813378B (zh) 一种代码库构建系统、方法和相关装置
TW201737126A (zh) 執行資料恢復操作的方法及裝置
US8869111B2 (en) Method and system for generating test cases for a software application
CN110598280A (zh) 一种设备仿真系统和方法、计算机可读存储介质
CN107957940B (zh) 一种测试日志处理方法、系统及终端
CN108563697B (zh) 一种数据处理方法、装置和存储介质
CN111880966A (zh) 一种数据库数据恢复方法和装置
CN112256318B (zh) 一种用于依赖产品的构建方法及设备
US9706005B2 (en) Providing automatable units for infrastructure support
CN111338693A (zh) 基于模型构建的目标文件生成方法、服务器及存储介质
CN111061498A (zh) 一种配置信息管理系统
CN115033894A (zh) 一种基于知识图谱的软件组件供应链安全检测方法及装置
CN113672692B (zh) 数据处理方法、装置、计算机设备和存储介质
CN116719817B (zh) 一种面向科技资源的数字对象关系溯源方法及系统
CN113961228A (zh) 一种变更提醒方法、装置、设备及存储介质
US20150347402A1 (en) System and method for enabling a client system to generate file system operations on a file system data set using a virtual namespace
CN105488165A (zh) 基于索引库的数据检索方法及系统
CN114760077B (zh) 基于区块链的异常数据检测方法、装置、存储介质及网关
CN114466387B (zh) 基站的配置文件的更新方法、装置、存储介质和电子装置
CN107104889B (zh) 一种基于imap协议的草稿邮件同步方法、装置和终端
CN115455006A (zh) 数据处理方法、数据处理装置、电子设备及存储介质
CN112685102B (zh) 一种网关插件热加载方法、装置、设备及介质
CN113835731A (zh) 根据更新组件提示出错方法、装置、电子设备及存储介质
CN113536767A (zh) 数据处理方法、装置、设备、介质及计算机程序产品
CN110297651A (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