CN110096280A - 代码工程的创建方法、装置、计算机装置及存储介质 - Google Patents
代码工程的创建方法、装置、计算机装置及存储介质 Download PDFInfo
- Publication number
- CN110096280A CN110096280A CN201910204774.9A CN201910204774A CN110096280A CN 110096280 A CN110096280 A CN 110096280A CN 201910204774 A CN201910204774 A CN 201910204774A CN 110096280 A CN110096280 A CN 110096280A
- Authority
- CN
- China
- Prior art keywords
- module
- file
- code
- engineering
- code engineering
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000009434 installation Methods 0.000 title claims abstract description 17
- 238000012827 research and development Methods 0.000 claims description 19
- 238000011160 research Methods 0.000 abstract description 8
- 238000011161 development Methods 0.000 abstract description 5
- 238000012423 maintenance Methods 0.000 abstract description 5
- 230000006870 function Effects 0.000 description 25
- 238000007620 mathematical function Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008676 import Effects 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 230000000739 chaotic effect Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/44—Encoding
- G06F8/447—Target code generation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种代码工程的创建方法,包括:扫描目标代码工程,确定所述目标代码工程包含的多个模块;将所述多个模块中每个模块的代码文件保存至与每个模块对应的模块目录中;确定所述多个模块中每个模块的依赖头文件;创建所述多个模块中每个模块的依赖头文件的软链接;基于所述多个模块中每个模块对应的模块目录创建每个模块的代码工程,在每个模块的代码工程中添加每个模块的依赖头文件的软链接。本发明还公开了一种代码工程的创建装置、计算机装置和计算机可读存储介质。本发明在代码开发时,能够根据一个代码工程快速创建多个子代码工程,有利于研发人员分模块进行代码维护。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种代码工程的创建方法、装置、计算机装置及存储介质。
背景技术
目前,在开发一个软件产品的过程中,研发人员通常会创建一个工程,再在工程中编写代码,则开发人员编写的若干代码文件以工程的形式组织,该工程也可称为代码工程,在代码工程中编写好代码后,基于代码工程对所包含的代码进而编译,发布运行。
然而,随着研发团队的扩张,参与研发的人员可能越来越多,研发人员也由一个部门分为若干部门,此时,一个大的代码工程可能也需要细分,基于大的代码工程建立若干子工程,以便不同的研发团队开发维护自己负责的部分,而不是仍然集中在一个大的代码工程中。目前,通常通过研发人员手动将一个代码工程划分为若干子代码工程,当代码文件较多时,这种方法容易出错,效率也不高。
发明内容
鉴于以上内容,有必要提供一种代码工程的创建方法、装置、计算机装置及存储介质,能够根据一个代码工程快速创建多个子代码工程,有利于研发人员分模块进行代码维护。
本发明提供一种代码工程的创建方法,所述方法包括:
扫描目标代码工程,确定所述目标代码工程包含的多个模块;
将所述多个模块中每个模块的代码文件保存至与每个模块对应的模块目录中;
确定所述多个模块中每个模块的依赖头文件;
创建所述多个模块中每个模块的依赖头文件的软链接;
基于所述多个模块中每个模块对应的模块目录创建每个模块的代码工程,在每个模块的代码工程中添加每个模块的依赖头文件的软链接。
在本发明可选实施中,所述在每个模块的代码工程中添加每个模块的依赖头文件的软链接之后,所述方法还包括:
若接收到执行所述目标代码工程的指令,将所创建的每个模块的代码工程对应的编译文件添加至可执行目标中以执行所述目标代码工程。
在本发明可选实施例中,所述创建所述多个模块中每个模块的依赖头文件的软链接包括:
确定所述多个模块中每个模块的依赖头文件所属的模块为每个模块的依赖模块;
在每个模块的依赖模块对应的模块目录中创建每个模块的依赖头文件的软链接。
在本发明可选实施中,所述方法还包括:
判断研发部门的组织架构是否存在调整;
若所述研发部门的组织架构存在调整,执行所述扫描目标代码工程,确定所述目标代码工程包含的模块的操作。
在本发明可选实施中,所述将所述多个模块中每个模块的代码文件保存至每个模块对应的模块目录之前,所述方法还包括:
根据所述多个模块中每个模块的名称创建与每个模块对应的模块目录。
在本发明可选实施例中,所述确定所述目标代码工程包含的多个模块包括:
根据所述目标代码工程中不同代码文件的所属开发人员确定所述目标代码工程包含的多个模块。
在本发明可选实施例中,所述目标代码工程包含的多个模块为预先划分的功能模块。
本发明提供还一种代码工程的创建装置,所述装置包括:
扫描模块,用于扫描目标代码工程,确定所述目标代码工程包含的多个模块;
保存模块,用于将所述多个模块中每个模块的代码文件保存至与每个模块对应的模块目录中;
确定模块,用于确定所述多个模块中每个模块的依赖头文件;
创建模块,用于创建所述多个模块中每个模块的依赖头文件的软链接;
添加模块,用于基于所述多个模块中每个模块对应的模块目录创建每个模块的代码工程,在每个模块的代码工程中添加每个模块的依赖头文件的软链接。
本发明还提供一种计算机装置,所述计算机装置包括存储器及处理器,所述存储器用于存储至少一个指令,所述处理器用于执行所述至少一个指令以实现任意实施例中所述的代码工程的创建方法。
本发明还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现任意实施例中所述的代码工程的创建方法。
由以上技术方案看出,本发明通过扫描目标代码工程,确定所述目标代码工程包含的多个模块;将所述多个模块中每个模块的代码文件保存至与每个模块对应的模块目录中;确定所述多个模块中每个模块的依赖头文件;创建所述多个模块中每个模块的依赖头文件的软链接;基于所述多个模块中每个模块对应的模块目录创建每个模块的代码工程,在每个模块的代码工程中添加每个模块的依赖头文件的软链接。无需人工手动划分,能够快速依据每个模块间的关系,建立每个独立的模块,在每个模块的代码工程中添加每个模块的依赖头文件的软链接,使划分后的每个模都能独立编译,实现了根据一个代码工程快速创建多个子代码工程的目的,有利于研发人员分模块进行代码维护。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明实施例提供的一种代码工程的创建方法的流程图;
图2是本发明实施例提供的代码工程的创建装置的功能模块图;
图3是本发明实现代码工程的创建方法的较佳实施例的计算机装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
如图1所示,图1为本发明实施例提供的一种代码工程的创建方法的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
S11,扫描目标代码工程,确定所述目标代码工程包含的多个模块。
本实施例所述的方法依据目标代码工程建立多个子代码工程。
所述目标代码工程包含的代码文件以工程的形式组织。
本实施例中扫描目标代码工程包括扫描目标代码工程所包含的文件夹以及文件夹包含的子文件夹,目标代码工程所包含的文件夹中可以包含多个代码文件以及多个头文件。
例如,在一个iOS开发的代码工程中,包含若干子文件夹(如资源文件夹以及编写过程中开发人员新建的文件夹,其中,资源文件夹是新建代码工程时编码工具创建的文件夹)以及“.h”文件和“.m”文件,其中,“.h”文件称为头文件,“.m”文件称为源文件。
一种可能的实施例中,可以预先将目标代码工程中的代码文件划分为不同的几个部分,每个部分可以称为一个模块,再将所划分的模块信息保存在目标代码工程的信息文件中,则通过该信息文件能够获取到目标代码工程包含的多个模块。例如,预先根据不同的部门将目标代码工程按照部门划分为不同的几个部分,则划分以后每个部门可以管理自己部门对应的模块。
另一种可能的实施例中,所述目标代码工程包含的多个模块为预先划分的功能模块。则确定目标代码工程所包括的多个模块可以依据工程文档等信息来获取目标代码工程所包括的功能模块。
通常一个软件可以有多个功能,对于软件开发时的载体(即目标代码工程)来说,目标代码工程可以包含多个功能模块。不同功能模块的代码可以实现不同的功能。例如,当目标代码工程可以实现登录、下单、支付、用户管理等功能时,该目标代码工程也可以包括相应的登录、下单、支付、用户管理这几个功能模块。
又一可能的实施例中,所述确定所述目标代码工程包含的多个模块包括:
根据所述目标代码工程中不同代码文件的所属开发人员确定所述目标代码工程包含的多个模块。
本实施例中,可以通过代码文件的编辑用户或者上传用户来确定目标代码工程中不同代码文件由哪些开发人员开发,再将每个开发人员所开发的部分作为一个目标代码工程的一个模块。
可选的,在本发明另一实施例中,所述步骤S11之前,所述方法还包括:
判断研发部门的组织架构是否存在调整;
若所述研发部门的组织架构存在调整,执行所述扫描目标代码工程,确定所述目标代码工程包含的模块的操作。
在本实施例中,所述目标代码工程包含的模块依据所述研发部门的组织架构确定。具体的,将同一个研发部门所开发的代码模块确定为同一个模块,将不同研发部门所开发的代码模块确定为不同模块。
通过上述步骤,在研发部门的组织架构调整以后触发执行步骤S11,使得每次研发部门的组织架构调整之后,始终能够根据最新的组织架构通过本发明所述方法根据目标代码工程创建不同的多个子代码工程。
S12,将所述多个模块中每个模块的代码文件保存至与每个模块对应的模块目录中。
例如,存在代码文件a,代码文件b和代码文件c均属于登陆模块;代码文件m,代码文件n,代码文件p和代码文件q属于支付模块,则将代码文件a,代码文件b和代码文件c移动至与登录模块对应的模块目录中,将代码文件m,代码文件n,代码文件p和代码文件q移动至支付模块对应的模块目录中。
本实施例中,与每个模块对应的模块目录可以是预先创建的,可选的,与每个模块对应的模块目录是与每个模块对应的一个文件夹。
在本发明另一实施例中,可以通过以下方法创建每个模块对应的文件夹,所述将多个模块中每个模块的代码文件保存至每个模块对应的模块目录之前,所述方法还包括:
根据所述多个模块中每个模块的名称创建与每个模块对应的模块目录。
在本实施例中创建对应的模块目录时创建时,根据模块的名称创建模块目录。例如,创建一个文件夹与某一模块对应,该文件夹的根据该模块的功能名称命名。
S13,确定所述多个模块中每个模块的依赖头文件。
头文件是一种包含功能函数、数据接口声明的载体文件。
例如,头文件math.h包含了常用的数学函数,如正弦函数double sin(double),反三角函数double asin(double),绝对值函数double fabs(double)等,当代码中需要使用这些常用的数学函数时,通常会在代码的开头部分按相应的语法规则声明导入math.h(如,在iOS应用开发中,可通过#include、#import、@class三种语法格式进行头文件的引用),则在代码使用时,可以直接调用该头文件包含的数学函数使用,无需再次定义其实现方法。
上述模块的依赖头文件是指在模块的代码文件中所引用的头文件。
因此,对于任意一个模块,可以扫描该模块对应的模块目录内包含的代码文件,获取代码文件所引用的头文件,确定代码文件引用的头文件则为该模块所依赖的头文件。
例如,存在模块A(包含头文件c和d),以及模块B(包含头文件e和f),若模块A引用了头文件e,则确定头文件e为模块A的依赖文件,所述头文件e是模块B中的被依赖头文件。
S14,创建所述多个模块中每个模块的依赖头文件的软链接。
上述软链接(soft link)也可称为符号链接(symbolic link),软链接是一个链接文件,即指向某一地址的链接文件。在本实施例中,软链接是指向该被依赖头文件的链接文件。则通过该软链接可以访问该被依赖头文件。
优选的,所述创建所述多个模块中每个模块的依赖头文件的软链接包括:
确定所述多个模块中每个模块的依赖头文件所属的模块为每个模块的依赖模块;
在每个模块的依赖模块对应的模块目录中创建每个模块的依赖头文件的软链接。
由于在每个模块的代码文件中可以获取该模块包括的头文件,因此在获取到某一头文件之后,也能获取到该头文件属于哪个模块。同样的,在本实施例中,在得到每个模块的依赖头文件以后,可以获取每个模块的依赖头文件所属的模块。
例如,存在模块A(包含头文件c和d),以及模块B(包含头文件e和f),若模块A的依赖头文件为头文件e,则子模块A的依赖头文件c所属的模块为模块B,即模块A对应的依赖模块是模块B。然后在模块B的模块目录中创建模块B的头文件e的软链接,该软连接用于指向头文件e。同时,若另外存在一模块C的依赖头文件是模块B中的头文件f,则也在模块B的模块目录中创建模块B的头文件f的软链接。
进一步地,在本发明另一实施例中,所述方法还包括:
在所述多个模块中每个模块对应的模块目录中新建保存软链接的文件夹,在所述文件夹中存放所属模块的被依赖头文件的软链接。
例如,在模块B中创建名称为Header的文件夹,在Header文件夹中保存模块B的头文件的软链接。
在本实施例中,通过一个单独的文件夹存放创建的软链接,避免软链接较多时文件混乱导致的不好管理的问题。
S15,基于所述多个模块中每个模块对应的模块目录创建每个模块的代码工程,在每个模块的代码工程中添加每个模块的依赖头文件的软链接。
在本实施例中,创建某一模块的代码工程具体是根据预先设置的文件组织方式将该模块包含的文件以一定结构组织,以及根据该模块包括的内容创建代码工程文件,该代码工程文件中包含:划分好的代码工程的名称、开发者名称、开发语言、代码版本公式等与代码工程相关的信息。
步骤S15执行之后即完成了依据目标代码工程创建多个子代码工程,并且新创建的子工程包含该子工程的代码文件,以及包含该子工程的代码文件所依赖的头文件的软链接。
由于在每个模块的代码工程中包含该模块的代码以及所依赖的头文件的软链接,因此在编译每个模块过程中,当要获取依赖头文件时,可以根据依赖头文件的软链接去寻找进而进行对该模块进行编译,编译好的文件称为动态库(例如为“.so”文件)。
进一步地,在本发明另一实施例中,所述方法还包括:
若接收到执行所述目标代码工程的指令,将所创建的每个模块的工程对应的编译文件添加至可执行目标中以执行所述目标代码工程。
例如,执行目标可以为一个main.exe文件,通过添加每个模块的代码工程对应的编译文件至main.exe文件中,从而可以运行该目标代码工程。
上述指令是指示工程进行运行的指令,由于目标代码工程为一个完整的软件程序,其程序执行时有程序入口,因此,虽然将每个目标代码工程的每个模块分别建立了子代码工程便于开发和管理,但执行整个目标代码工程时,可能需要将每个子代码工程的编译文件整合在一起。
因此,在本实施例中,将每个模块的代码工程的编译文件添加至可执行目标中,从而执行目标代码工程实现了根据目标代码工程创建多个子代码工程以后再运行该目标代码工程的目的。
本发明提供的代码工程的创建方法,扫描目标代码工程,确定所述目标代码工程包含的多个模块;将所述多个模块中每个模块的代码文件保存至与每个模块对应的模块目录中;确定所述多个模块中每个模块的依赖头文件;创建所述多个模块中每个模块的依赖头文件的软链接;基于所述多个模块中每个模块对应的模块目录创建每个模块的代码工程,在每个模块的代码工程中添加每个模块的依赖头文件的软链接。无需人工手动划分,能够快速依据每个模块间的关系,建立每个独立的模块,在每个模块的代码工程中添加每个模块的依赖头文件的软链接,使划分后的每个模都能独立编译,实现了根据一个代码工程快速创建多个子代码工程的目的,有利于研发人员分模块进行代码维护。
如图2所示,图2为本发明实施例提供的代码工程的创建装置20的功能模块图。所述代码工程的创建装置包括扫描模块210、保存模块220、确定模块230、创建模块240以及添加模块250。本发明所称的模块是指一种能够被计算机装置的处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在计算机装置的存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。
所述扫描模块210,用于扫描目标代码工程,确定所述目标代码工程包含的多个模块。
本实施例所述的方法依据目标代码工程建立多个子代码工程。
所述目标代码工程包含的代码文件以工程的形式组织。
本实施例中扫描目标代码工程包括扫描目标代码工程所包含的文件夹以及文件夹包含的子文件夹,目标代码工程所包含的文件夹中可以包含多个代码文件以及多个头文件。
例如,在一个iOS开发的代码工程中,包含若干子文件夹(如资源文件夹以及编写过程中开发人员新建的文件夹,其中,资源文件夹是新建代码工程时编码工具创建的文件夹)以及“.h”文件和“.m”文件,其中,“.h”文件称为头文件,“.m”文件称为源文件。
一种可能的实施例中,可以预先将目标代码工程中的代码文件划分为不同的几个部分,每个部分可以称为一个模块,再将所划分的模块信息保存在目标代码工程的信息文件中,则通过该信息文件能够获取到目标代码工程包含的多个模块。例如,预先根据不同的部门将目标代码工程按照部门划分为不同的几个部分,则划分以后每个部门可以管理自己部门对应的模块。
另一种可能的实施例中,所述目标代码工程包含的多个模块为预先划分的功能模块。则确定目标代码工程所包括的多个模块可以依据工程文档等信息来获取目标代码工程所包括的功能模块。
通常一个软件可以有多个功能,对于软件开发时的载体(即目标代码工程)来说,目标代码工程可以包含多个功能模块。不同功能模块的代码可以实现不同的功能。例如,当目标代码工程可以实现登录、下单、支付、用户管理等功能时,该目标代码工程也可以包括相应的登录、下单、支付、用户管理这几个功能模块。
又一可能的实施例中,所述扫描模块210确定所述目标代码工程包含的多个模块包括:
根据所述目标代码工程中不同代码文件的所属开发人员确定所述目标代码工程包含的多个模块。
本实施例中,可以通过代码文件的编辑用户或者上传用户来确定目标代码工程中不同代码文件由哪些开发人员开发,再将每个开发人员所开发的部分作为一个目标代码工程的一个模块。
可选的,在本发明另一实施例中,在所述扫描模块210之前,所述装置还包括触发模块,所述触发模块用于:
判断研发部门的组织架构是否存在调整;
若所述研发部门的组织架构存在调整,触发所述扫描模块扫描目标代码工程,确定所述目标代码工程包含的模块。
在本实施例中,所述目标代码工程包含的模块依据所述研发部门的组织架构确定。具体的,将同一个研发部门所开发的代码模块确定为同一个模块,将不同研发部门所开发的代码模块确定为不同模块。
通过在研发部门的组织架构调整以后触发扫描模块210执行操作,使得每次研发部门的组织架构调整之后,始终能够根据最新的组织架构通过本发明所述装置根据目标代码工程创建不同的多个子代码工程。
所述保存模块220,用于将所述多个模块中每个模块的代码文件保存至与每个模块对应的模块目录中。
例如,存在代码文件a,代码文件b和代码文件c均属于登陆模块;代码文件m,代码文件n,代码文件p和代码文件q属于支付模块,则将代码文件a,代码文件b和代码文件c移动至与登录模块对应的模块目录中,将代码文件m,代码文件n,代码文件p和代码文件q移动至支付模块对应的模块目录中。
本实施例中,与每个模块对应的模块目录可以是预先创建的,可选的,与每个模块对应的模块目录是与每个模块对应的一个文件夹。
在本发明另一实施例中,还可以通过文件夹新建模块创建每个模块对应的文件夹,所述文件夹新建模块用于:
将多个模块中每个模块的代码文件保存至每个模块对应的模块目录之前,根据所述多个模块中每个模块的名称创建与每个模块对应的模块目录。
在本实施例中创建对应的模块目录时创建,根据模块的名称创建模块目录。例如,创建一个文件夹与某一模块对应,该文件夹的根据该模块的功能名称命名。
所述确定模块230,用于确定所述多个模块中每个模块的依赖头文件。
头文件是一种包含功能函数、数据接口声明的载体文件。
例如,头文件math.h包含了常用的数学函数,如正弦函数double sin(double),反三角函数double asin(double),绝对值函数double fabs(double)等,当代码中需要使用这些常用的数学函数时,通常会在代码的开头部分按相应的语法规则声明导入math.h(如,在iOS应用开发中,可通过#include、#import、@class三种语法格式进行头文件的引用),则在代码使用时,可以直接调用该头文件包含的数学函数使用,无需再次定义其实现方法。
上述模块的依赖头文件是指在模块的代码文件中所引用的头文件。
因此,对于任意一个模块,可以扫描该模块对应的模块目录内包含的代码文件,获取代码文件所引用的头文件,确定代码文件引用的头文件则为该模块所依赖的头文件。
例如,存在模块A(包含头文件c和d),以及模块B(包含头文件e和f),若模块A引用了头文件e,则确定头文件e为模块A的依赖文件,所述头文件e是模块B中的被依赖头文件。
所述创建模块240,用于创建所述多个模块中每个模块的依赖头文件的软链接。
上述软链接(soft link)也可称为符号链接(symbolic link),软链接是一个链接文件,即指向某一地址的链接文件。在本实施例中,软链接是指向该被依赖头文件的链接文件。则通过该软链接可以访问该被依赖头文件。
优选的,所述创建模块240创建所述多个模块中每个模块的依赖头文件的软链接包括:
确定所述多个模块中每个模块的依赖头文件所属的模块为每个模块的依赖模块;
在每个模块的依赖模块对应的模块目录中创建每个模块的依赖头文件的软链接。
由于在每个模块的代码文件中可以获取该模块包括的头文件,因此在获取到某一头文件之后,也能获取到该头文件属于哪个模块。同样的,在本实施例中,在得到每个模块的依赖头文件以后,可以获取每个模块的依赖头文件所属的模块。
例如,存在模块A(包含头文件c和d),以及模块B(包含头文件e和f),若模块A的依赖头文件为头文件e,则子模块A的依赖头文件c所属的模块为模块B,即模块A对应的依赖模块是模块B。然后在模块B的模块目录中创建模块B的头文件e的软链接,该软连接用于指向头文件e。同时,若另外存在一模块C的依赖头文件是模块B中的头文件f,则也在模块B的模块目录中创建模块B的头文件f的软链接。
进一步地,在本发明另一实施例中,所述创建模块240还用于:
在所述多个模块中每个模块对应的模块目录中新建保存软链接的文件夹,在所述文件夹中存放所属模块的被依赖头文件的软链接。
例如,在模块B中创建名称为Header的文件夹,在Header文件夹中保存模块B的头文件的软链接。
在本实施例中,通过一个单独的文件夹存放创建的软链接,避免软链接较多时文件混乱导致的不好管理的问题。
所述添加模块250,用于基于所述多个模块中每个模块对应的模块目录创建每个模块的代码工程,在每个模块的代码工程中添加每个模块的依赖头文件的软链接。
在本实施例中,创建某一模块的代码工程具体是根据预先设置的文件组织方式将该模块包含的文件以一定结构组织,以及根据该模块包括的内容创建代码工程文件,该代码工程文件中包含:划分好的代码工程的名称、开发者名称、开发语言、代码版本公式等与代码工程相关的信息。
添加模块执行之后即完成了依据目标代码工程创建多个子代码工程,并且新创建的子工程包含该子工程的代码文件,以及包含该子工程的代码文件所依赖的头文件的软链接。
由于在每个模块的代码工程中包含该模块的代码以及所依赖的头文件的软链接,因此在编译每个模块过程中,当要获取依赖头文件时,可以根据依赖头文件的软链接去寻找进而进行对该模块进行编译,编译好的文件称为动态库(例如为“.so”文件)。
进一步地,在本发明另一实施例中,所述装置还包括执行模块,用于:
若接收到执行所述目标代码工程的指令,将所创建的每个模块的工程对应的编译文件添加至可执行目标中以执行所述目标代码工程。
例如,执行目标可以为一个main.exe文件,通过添加每个模块的代码工程对应的编译文件至main.exe文件中,从而可以运行该目标代码工程。
上述指令是指示工程进行运行的指令,由于目标代码工程为一个完整的软件程序,其程序执行时有程序入口,因此,虽然将每个目标代码工程的每个模块分别建立了子代码工程便于开发和管理,但执行整个目标代码工程时,可能需要将每个子代码工程的编译文件整合在一起。
因此,在本实施例中,将每个模块的代码工程的编译文件添加至可执行目标中,从而执行目标代码工程实现了根据目标代码工程创建多个子代码工程以后再运行该目标代码工程的目的。
本发明提供的代码工程的创建装置通过扫描模块扫描目标代码工程,确定所述目标代码工程包含的多个模块;保存模块将所述多个模块中每个模块的代码文件保存至与每个模块对应的模块目录中;确定模块确定所述多个模块中每个模块的依赖头文件;创建模块创建所述多个模块中每个模块的依赖头文件的软链接;添加模块基于所述多个模块中每个模块对应的模块目录创建每个模块的代码工程,在每个模块的代码工程中添加每个模块的依赖头文件的软链接。无需人工手动划分,能够快速依据每个模块间的关系,建立每个独立的模块,在每个模块的代码工程中添加每个模块的依赖头文件的软链接,使划分后的每个模都能独立编译,实现了根据一个代码工程快速创建多个子代码工程的目的,有利于研发人员分模块进行代码维护。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。
如图3所示,图3是本发明实现代码工程的创建方法的较佳实施例的计算机装置的结构示意图。所述计算机装置包括至少一个发送装置31、至少一个存储器32、至少一个处理器33、至少一个接收装置34以及至少一个通信总线。其中,所述通信总线用于实现这些组件之间的连接通信。
所述计算机装置是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。所述计算机装置还可包括网络设备和/或用户设备。其中,所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量主机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。
所述计算机装置可以是,但不限于任何一种可与用户通过键盘、触摸板或声控设备等方式进行人机交互的电子产品,例如,平板电脑、智能手机、监控设备等终端。
所述计算机装置所处的网络包括,但不限于互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。
其中,所述接收装置34和所述发送装置31可以是有线发送端口,也可以为无线设备,例如包括天线装置,用于与其他设备进行数据通信。
所述存储器32用于存储程序代码。所述存储器32可以是集成电路中没有实物形式的具有存储功能的电路,如RAM(Random-Access Memory,随机存取存储器)、FIFO(First InFirst Out,先进先出存储器)等。或者,所述存储器32也可以是具有实物形式的存储器,如内存条、TF卡(Trans-flash Card)、智能媒体卡(smart media card)、安全数字卡(securedigital card)、快闪存储器卡(flash card)等储存设备等等。
所述处理器33可以包括一个或者多个微处理器、数字处理器。所述处理器33可调用存储器32中存储的程序代码以执行相关的功能。例如,图2中所述的各个模块是存储在所述存储器32中的程序代码,并由所述处理器33所执行,以实现一种代码工程的创建方法。所述处理器33又称中央处理器(CPU,Central Processing Unit),是一块超大规模的集成电路,是运算核心(Core)和控制核心(Control Unit)。
在本发明所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。***权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种代码工程的创建方法,其特征在于,所述方法包括:
扫描目标代码工程,确定所述目标代码工程包含的多个模块;
将所述多个模块中每个模块的代码文件保存至与每个模块对应的模块目录中;
确定所述多个模块中每个模块的依赖头文件;
创建所述多个模块中每个模块的依赖头文件的软链接;
基于所述多个模块中每个模块对应的模块目录创建每个模块的代码工程,在每个模块的代码工程中添加每个模块的依赖头文件的软链接。
2.如权利要求1所述的方法,其特征在于,所述在每个模块的代码工程中添加每个模块的依赖头文件的软链接之后,所述方法还包括:
若接收到执行所述目标代码工程的指令,将所创建的每个模块的代码工程对应的编译文件添加至可执行目标中以执行所述目标代码工程。
3.如权利要求1所述的方法,其特征在于,所述创建所述多个模块中每个模块的依赖头文件的软链接包括:
确定所述多个模块中每个模块的依赖头文件所属的模块为每个模块的依赖模块;
在每个模块的依赖模块对应的模块目录中创建每个模块的依赖头文件的软链接。
4.如权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
判断研发部门的组织架构是否存在调整;
若所述研发部门的组织架构存在调整,执行所述扫描目标代码工程,确定所述目标代码工程包含的模块的操作。
5.如权利要求1至3中任一项所述的方法,其特征在于,所述将所述多个模块中每个模块的代码文件保存至每个模块对应的模块目录之前,所述方法还包括:
根据所述多个模块中每个模块的名称创建与每个模块对应的模块目录。
6.如权利要求1至3中任一项所述的方法,其特征在于,所述确定所述目标代码工程包含的多个模块包括:
根据所述目标代码工程中不同代码文件的所属开发人员确定所述目标代码工程包含的多个模块。
7.如权利要求1至3中任一项所述的方法,其特征在于,所述目标代码工程包含的多个模块为预先划分的功能模块。
8.一种代码工程的创建装置,其特征在于,所述装置包括:
扫描模块,用于扫描目标代码工程,确定所述目标代码工程包含的多个模块;
保存模块,用于将所述多个模块中每个模块的代码文件保存至与每个模块对应的模块目录中;
确定模块,用于确定所述多个模块中每个模块的依赖头文件;
创建模块,用于创建所述多个模块中每个模块的依赖头文件的软链接;
添加模块,用于基于所述多个模块中每个模块对应的模块目录创建每个模块的代码工程,在每个模块的代码工程中添加每个模块的依赖头文件的软链接。
9.一种计算机装置,其特征在于,所述计算机装置包括存储器及处理器,所述存储器用于存储至少一个指令,所述处理器用于执行所述至少一个指令以实现如权利要求1至7中任一项所述的代码工程的创建方法。
10.一种计算机可读存储介质,其上存储有计算机指令,其特征在于:所述计算机指令被处理器执行时实现如权利要求1至7中任一项所述的代码工程的创建方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910204774.9A CN110096280A (zh) | 2019-03-18 | 2019-03-18 | 代码工程的创建方法、装置、计算机装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910204774.9A CN110096280A (zh) | 2019-03-18 | 2019-03-18 | 代码工程的创建方法、装置、计算机装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110096280A true CN110096280A (zh) | 2019-08-06 |
Family
ID=67443289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910204774.9A Pending CN110096280A (zh) | 2019-03-18 | 2019-03-18 | 代码工程的创建方法、装置、计算机装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110096280A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110989985A (zh) * | 2019-11-29 | 2020-04-10 | 深圳前海环融联易信息科技服务有限公司 | 基于Maven的依赖包的管理方法、装置、计算机设备及存储介质 |
CN111399840A (zh) * | 2020-03-04 | 2020-07-10 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种模块开发方法及装置 |
CN111722851A (zh) * | 2020-04-22 | 2020-09-29 | 深圳市伟文无线通讯技术有限公司 | 一种基于单片机的支持多云平台连接的装置和方法 |
CN111984531A (zh) * | 2020-07-31 | 2020-11-24 | 五八有限公司 | 一种代码耦合检测的方法及装置 |
CN112463127A (zh) * | 2020-12-08 | 2021-03-09 | 微医云(杭州)控股有限公司 | 一种文件处理方法、装置、设备及存储介质 |
CN112486481A (zh) * | 2020-12-03 | 2021-03-12 | 北京展心展力信息科技有限公司 | 多模块分层架构实现方法、装置、电子设备及介质 |
CN113590175A (zh) * | 2021-06-30 | 2021-11-02 | 支付宝(杭州)信息技术有限公司 | 依赖目录的创建方法、装置及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110239195A1 (en) * | 2010-03-25 | 2011-09-29 | Microsoft Corporation | Dependence-based software builds |
CN107357593A (zh) * | 2017-08-24 | 2017-11-17 | 武汉斗鱼网络科技有限公司 | 源代码文件组建方法、装置、电子终端及可读存储介质 |
CN107391161A (zh) * | 2016-05-17 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 一种JavaScript模块安装方法及装置 |
CN107632827A (zh) * | 2016-07-12 | 2018-01-26 | 阿里巴巴集团控股有限公司 | 应用的安装包的生成方法及装置 |
CN107748662A (zh) * | 2017-11-17 | 2018-03-02 | 深圳市泉眼网络科技有限公司 | 应用程序开发方法、终端及计算机可读存储介质 |
-
2019
- 2019-03-18 CN CN201910204774.9A patent/CN110096280A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110239195A1 (en) * | 2010-03-25 | 2011-09-29 | Microsoft Corporation | Dependence-based software builds |
CN107391161A (zh) * | 2016-05-17 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 一种JavaScript模块安装方法及装置 |
CN107632827A (zh) * | 2016-07-12 | 2018-01-26 | 阿里巴巴集团控股有限公司 | 应用的安装包的生成方法及装置 |
CN107357593A (zh) * | 2017-08-24 | 2017-11-17 | 武汉斗鱼网络科技有限公司 | 源代码文件组建方法、装置、电子终端及可读存储介质 |
CN107748662A (zh) * | 2017-11-17 | 2018-03-02 | 深圳市泉眼网络科技有限公司 | 应用程序开发方法、终端及计算机可读存储介质 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110989985A (zh) * | 2019-11-29 | 2020-04-10 | 深圳前海环融联易信息科技服务有限公司 | 基于Maven的依赖包的管理方法、装置、计算机设备及存储介质 |
CN110989985B (zh) * | 2019-11-29 | 2024-01-23 | 深圳前海环融联易信息科技服务有限公司 | 基于Maven的依赖包的管理方法、装置、计算机设备及存储介质 |
CN111399840A (zh) * | 2020-03-04 | 2020-07-10 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种模块开发方法及装置 |
CN111399840B (zh) * | 2020-03-04 | 2024-03-19 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种模块开发方法及装置 |
CN111722851A (zh) * | 2020-04-22 | 2020-09-29 | 深圳市伟文无线通讯技术有限公司 | 一种基于单片机的支持多云平台连接的装置和方法 |
CN111984531A (zh) * | 2020-07-31 | 2020-11-24 | 五八有限公司 | 一种代码耦合检测的方法及装置 |
CN111984531B (zh) * | 2020-07-31 | 2022-01-28 | 五八有限公司 | 一种代码耦合检测的方法及装置 |
CN112486481A (zh) * | 2020-12-03 | 2021-03-12 | 北京展心展力信息科技有限公司 | 多模块分层架构实现方法、装置、电子设备及介质 |
CN112486481B (zh) * | 2020-12-03 | 2024-03-19 | 北京展心展力信息科技有限公司 | 多模块分层架构实现方法、装置、电子设备及介质 |
CN112463127A (zh) * | 2020-12-08 | 2021-03-09 | 微医云(杭州)控股有限公司 | 一种文件处理方法、装置、设备及存储介质 |
CN113590175A (zh) * | 2021-06-30 | 2021-11-02 | 支付宝(杭州)信息技术有限公司 | 依赖目录的创建方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110096280A (zh) | 代码工程的创建方法、装置、计算机装置及存储介质 | |
CN107918600B (zh) | 报表开发***及方法、存储介质和电子设备 | |
US20220272075A1 (en) | Efficient sensor data delivery | |
CN109086325A (zh) | 基于区块链的数据处理方法和装置 | |
US20150020063A1 (en) | Deploying an application in a cloud computing environment | |
US9594663B2 (en) | Apparatus and method for collecting log information from a plurality of servers | |
CN105247493A (zh) | 从静态收集的数据中标识受影响的测试 | |
CN104714858A (zh) | 数据备份方法及装置、数据恢复方法及装置 | |
CN110806970A (zh) | 一种基于模拟服务端响应的客户端测试方法、装置和电子设备 | |
CN109213516A (zh) | Svn中代码同步与通知的方法、存储介质、设备和*** | |
US10592355B2 (en) | Capacity management | |
US11321318B2 (en) | Dynamic access paths | |
CN110428153A (zh) | 消息聚合方法及装置 | |
CN111626602A (zh) | 业务处理方法、业务处理装置、存储介质与电子设备 | |
CN116601644A (zh) | 使用分布式分类账提供可解释的机器学习模型结果 | |
CN109828759B (zh) | 代码编译方法、装置、计算机装置及存储介质 | |
CN105335142A (zh) | 在事务处理***中标识事务的性能瓶颈的方法和装置 | |
Do et al. | Performance assessment of ensembles of in situ workflows under resource constraints | |
CN114466005A (zh) | 物联网设备编排 | |
CN109408092A (zh) | 前端版本发布的方法及装置、存储介质及电子设备 | |
US9912545B2 (en) | High performance topology resolution for non-instrumented nodes | |
CN110908644A (zh) | 状态节点的配置方法、装置、计算机设备和存储介质 | |
KR20220016933A (ko) | 데이터 수집 방법, 장치, 기기, 저장매체 및 컴퓨터 프로그램 | |
CN109828719A (zh) | 基于云监控的commitLog文件所在磁盘控制方法、装置及相关设备 | |
US9753722B2 (en) | Automatically expiring out source code comments |
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 |