一种多模块项目源码分离方法及设备技术

技术编号:33718673 阅读:7 留言:0更新日期:2022-06-08 21:09
本发明专利技术实施例提供一种多模块项目源码分离方法及设备。所述方法包括:获取目标项目相关的源码文件集合,所述源码文件集合是基于多模块框架开发的;基于所述源码文件集合,识别所述目标项目实际使用的源码文件并判定冗余文件;将所述冗余文件从源码文件集合中删除,从而分离出所述目标项目源码。通过本发明专利技术实施例方法,既能享受模块开发带来的便利,又可以很方便的从体积庞大的多模块项目中分离功能完整的目标源代码,分离源码时投入维护成本低。低。低。

【技术实现步骤摘要】
一种多模块项目源码分离方法及设备


[0001]本专利技术实施例涉及计算机
,尤其涉及一种多模块项目源码分离方法及设备。

技术介绍

[0002]当前无论是公司还是个人开发者,基本都会使用模块化方式来开发项目。这种开发方式有诸多优势:分工明确,可以协同开发;职责单一,可降低代码耦合;代码复用,可以减少重复代码。
[0003]模块化开发中的公共模块是大量公共方法的集合体,这些公共方法职责单一,分工明确,就像积木搭建中的基础积木块,使用频率和数量都非常大。公共方法和公共积木块不同的是,公共积木块需要多少就需要生产多少积木块,但是公共方法不管在多少地方需要调用,只需要在公共模块中声明一次,就能无限次使用。这种一次声明,无限次复用的方式,可以大大减少代码的体积。
[0004]以多模块框架进行软件开发,可以快速且大数量的制作计算机项目,在一些需要可编译的源代码的场景中,需要分离出单个系统的精炼代码,这时多模块开发的弊端就会展露出来。公共模块中会包含大量公共代码,单个系统使用的只是其中一部分,若将未使用的代码也包括在单个系统的源代码中,则未使用的代码及代码中的注释会暴露一些不必要的信息,同时也会造成交付源码的体积臃肿。
[0005]这个时候往往需要花费大量的人力做手动删除和代码适配。如果遇到需求变更的情况,那人力的投入将会呈现倍数的上升;如果将分离出的代码单独开发,又不利于和其他项目同步最新的公共模块代码,如果单独拉分支开发,又会消耗过多的时间成本在同步代码修改到差异不大的分支上。

技术实现思路

[0006]针对现有技术存在的问题,本专利技术实施例提供一种多模块项目源码分离方法,通过自动化的手段,可以很方便的从体积庞大的多模块项目中分离功能完整的目标源代码。
[0007]第一方面,本专利技术实施例提供一种多模块项目源码分离方法,包括:
[0008]获取目标项目相关的源码文件集合,所述源码文件集合是基于多模块框架开发的;
[0009]基于所述源码文件集合,识别所述目标项目实际使用的源码文件并判定冗余文件;
[0010]将所述冗余文件从源码文件集合中删除,从而分离出所述目标项目源码。
[0011]进一步,所述多模块项目源码分离方法还包括:
[0012]识别所述目标项目实际使用的源码文件中的第一代码块,并删除所述第一代码块;所述第一代码块是所述目标项目实际使用的源码文件中未使用的代码。
[0013]进一步,所述多模块项目源码分离方法还包括:
[0014]识别所述目标项目实际使用的源码文件中的第二代码块,并恢复所述第二代码块;所述第二代码块是所述目标项目实际使用的源码文件中被注释的代码。
[0015]进一步,所述基于所述源码文件集合,识别所述目标项目实际使用的源码文件并判定冗余文件,具体包括:
[0016]对所述源码文件集合进行优化和混淆,获取已混淆的类集合,所述已混淆的类集合是所述目标项目中实际使用的类的集合;
[0017]根据所述已混淆的类集合获取对应的源码文件,获得所述目标项目实际使用的源码文件;
[0018]判定所述源码文件集合中非所述目标项目实际使用的源码文件为冗余文件。
[0019]进一步,所述对所述源码文件集合进行优化和混淆,获取已混淆的类集合,具体包括:
[0020]根据预先设置的入口函数,对所述源码文件集合中的源码文件进行递归遍历,移除其中无用的类、字段、方法及属性;
[0021]对剩余源码文件中的类名进行名称混淆,获取已混淆的类集合。
[0022]进一步,所述根据所述已混淆的类集合获取对应的源码文件,获得所述目标项目实际使用的源码文件,还包括:
[0023]基于所述已混淆的类集合,根据原始类与混淆类的映射关系获取原始类;根据原始类获取第一类源码文件,所述第一类源码文件是原始类对应源码文件;
[0024]查找第二类源码文件,所述第二类源码文件是所述目标项目实际使用但未包含在第一类源码文件中;
[0025]将第一类源码文件和第二类源码文件作为所述目标项目实际使用的源码文件。
[0026]进一步,所述识别所述目标项目实际使用的源码文件中的第一代码块,并删除所述第一代码块,具体包括:
[0027]遍历所述目标项目实际使用的源码文件,识别所有第一代码块,分别对识别出的每个第一代码块的起始位置和结束位置进行删除标记;
[0028]根据所有删除标记,删除所有第一代码块。
[0029]进一步,所述识别所述目标项目实际使用的源码文件中的第二代码块,并恢复所述第二代码块,具体包括:
[0030]遍历所述目标项目实际使用的源码文件,识别所有第二代码块,分别对识别出的每个第二代码块的起始位置和结束位置进行恢复标记;
[0031]根据所有恢复标记,恢复所有第二代码块。
[0032]第二方面,本专利技术实施例提供一种电子设备,包括:
[0033]至少一个处理器;以及
[0034]与所述处理器通信连接的至少一个存储器,其中:
[0035]所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行本专利技术实施例第一方面所述多模块项目源码分离方法及其任一可选实施例所述的方法。
[0036]第三方面,本专利技术实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令执行本专利技术实施例第一方面所述多模块
项目源码分离方法及其任一可选实施例的方法。
[0037]本专利技术实施例提供的多模块项目源码分离方法,通过自动化的手段,根据目标项目相关的源码文件集合,识别所述目标项目实际使用的源码文件并判定冗余文件,将所述冗余文件从源码文件集合中删除,从而分离出所述目标项目源码;通过本专利技术实施例方法,既能享受模块开发带来的便利,又可以很方便的从体积庞大的多模块项目中分离功能完整的目标源代码,分离源码时投入维护成本低。
附图说明
[0038]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0039]图1为本专利技术实施例一种多模块项目源码分离方法流程示意图;
[0040]图2为本专利技术实施例一种多模块项目源码分离装置示意图;
[0041]图3为本专利技术实施例电子设备的框架示意图。
具体实施方式
[0042]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0043]本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多模块项目源码分离方法,其特征在于,包括:获取目标项目相关的源码文件集合,所述源码文件集合是基于多模块框架开发的;基于所述源码文件集合,识别所述目标项目实际使用的源码文件并判定冗余文件;将所述冗余文件从源码文件集合中删除,从而分离出所述目标项目源码。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:识别所述目标项目实际使用的源码文件中的第一代码块,并删除所述第一代码块;所述第一代码块是所述目标项目实际使用的源码文件中未使用的代码。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:识别所述目标项目实际使用的源码文件中的第二代码块,并恢复所述第二代码块;所述第二代码块是所述目标项目实际使用的源码文件中被注释的代码。4.根据权利要求1-3任一项所述的方法,其特征在于,所述基于所述源码文件集合,识别所述目标项目实际使用的源码文件并判定冗余文件,具体包括:对所述源码文件集合进行优化和混淆,获取已混淆的类集合,所述已混淆的类集合是所述目标项目中实际使用的类的集合;根据所述已混淆的类集合获取对应的源码文件,获得所述目标项目实际使用的源码文件;判定所述源码文件集合中非所述目标项目实际使用的源码文件为冗余文件。5.根据权利要求4所述的方法,其特征在于,所述对所述源码文件集合进行优化和混淆,获取已混淆的类集合,具体包括:根据预先设置的入口函数,对所述源码文件集合中的源码文件进行递归遍历,移除其中无用的类、字段、方法及属性;对剩余源码文件中的类名进行名称混淆,获取已混淆的类集合。6.根据权利要求4或5所述的方法,其特征...

【专利技术属性】
技术研发人员:潘宣辰汪磊关杰文
申请(专利权)人:武汉安天信息技术有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1