CN115756451A - 一种多项目代码文件重用的方法、装置、设备、存储介质 - Google Patents
一种多项目代码文件重用的方法、装置、设备、存储介质 Download PDFInfo
- Publication number
- CN115756451A CN115756451A CN202211625550.3A CN202211625550A CN115756451A CN 115756451 A CN115756451 A CN 115756451A CN 202211625550 A CN202211625550 A CN 202211625550A CN 115756451 A CN115756451 A CN 115756451A
- Authority
- CN
- China
- Prior art keywords
- project
- module
- file
- name
- code
- 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 52
- 238000012986 modification Methods 0.000 claims abstract description 45
- 230000004048 modification Effects 0.000 claims abstract description 45
- 238000013507 mapping Methods 0.000 claims abstract description 40
- 230000007717 exclusion Effects 0.000 claims description 8
- 230000000694 effects Effects 0.000 claims description 7
- 230000008676 import Effects 0.000 claims description 5
- 230000001131 transforming effect Effects 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 2
- 238000011161 development Methods 0.000 abstract description 11
- 238000002054 transplantation Methods 0.000 description 4
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明属于项目代码开发技术领域,具体提供一种多项目代码文件重用的方法、装置、设备、存储介质有,所述方法包括如下步骤:在代码库中创建一个总项目模块,根据需要在总项目模块下,创建项目模块;对项目需要编写代码的文件,通过设置分配文件优先编辑权、优先编译权、文件映射方法将文件指定到具体的项目模块中;同时定义互斥的变量,用于区分不同的项目;项目重建时,在总项目模块下创建新的项目模块,将待重建的项目模块中所有文件复制到新的项目模块中,通过特定修改方式,按新的项目模块的项目名称的需求,进行项目名称、程序、映射目录位置的更改。不同项目呈现的修改内容不同,避免了多个项目同时修改一个文件造成代码更改混乱的问题。
Description
技术领域
本发明涉及项目代码开发技术领域,具体涉及一种多项目代码文件重用的方法、装置、设备、存储介质。
背景技术
在BIOS多项目开发中,应用成熟的代码库,对不同项目需求进行开发,通常会在同一代码位置,有不同的修改,在这种情况下,如何对代码进行有效编写,来实现不同项目间的兼容,并能实现一套代码库,适应不同项目,及更新代码库时,与项目相关的代码能一并移植完成,是BIOS固件开发者面对的难题。
BIOS业界有以下常见的技术方案,第一种,利用不同的项目名称,在相应代码位置,进行项目名的判定,再做与项目相关的修改,实现多项目的不同程序修改;该方法在业界普遍使用,它在同一套代码实施多项目开发方面,有很好的兼容性;但它的问题在于,当代码库需要更新时,其与多项目相关的代码修改部分,得重新复制粘贴,比对一遍,如果不同的项目改动的文件比较多,牵涉内核文件,外围模块文件等,其相应的工作量也会大大增加,不利于多项目的快速移植;第二种,将相同的代码库的文件,重新复制一遍,再命名成另外的项目名称,再对与项目相关的代码位置进行修改;该方法的好处在于,各项目间是独立开发,独立维护,该方法对更改频繁,项目众多的企业来讲,应用很普便,它能避免在同一文件中多项目的修改,造成的项目修改混乱问题;但带来的问题是,项目越多,维护的人力成本越高,代码重用率低,代码占用空间大,并且当用uefi开发工具打开多个项目,占用内存明显,影响编译速度,从而影响开发效率。
发明内容
针对以上提到的两种方法,第一种代码重用率高,但代码库更新带来了可移植性低,不利于多项目的快速移植;第二种方法代码重用率低,代码占用空间大,多项目同时打开时,占用内存资源等,影响开发及编译效率;这些当前BIOS项目开发中遇到的难题,本发明提供一种多项目代码文件重用的方法、装置、设备、存储介质。
第一方面,本发明技术方案提供一种多项目代码文件重用的方法,包括如下步骤:
在代码库中创建一个总项目模块,根据需要在总项目模块下,创建项目模块;
对项目需要编写代码的文件,通过设置分配文件优先编辑权、优先编译权、文件映射方法将文件指定到具体的项目模块中;同时定义互斥的变量,用于区分不同的项目;
当项目重建时,在总项目模块下创建新的项目模块,将待重建的项目模块中所有文件复制到新的项目模块中,将待重建的项目名称相关语句的地方,通过特定修改方式,按新的项目模块的项目名称的需求,进行项目名称、程序、映射目录位置的更改;
当代码库需要更新时,将总项目模块导出,再将总项目模块导入到新的代码库中。
作为本发明技术方案的进一步限定,当项目重建时,在总项目模块下创建新的项目模块,将待重建的项目模块中所有文件复制到新的项目模块中,将待重建的项目名称相关语句的地方,通过特定修改方式,按新的项目模块的项目名称的需求,进行项目名称、程序、映射目录位置的更改的步骤中,待重建的项目模块为项目模块A,新的项目模块为项目模块B,具体包括:
在总项目模块下,创建项目模块B,设定项目名称B,将项目模块A中所有文件复制到项目模块B中,将项目名称A相关语句的地方,通过特定修改方式,按项目名称B的需求,进行项目名称、程序、映射目录位置的更改;
设置关闭项目名称A的项目,让项目名称B的项目生效,并定义项目间互斥变量,让项目名称B获得相关文件的优先编辑、编译权,在项目名称B需要更改代码的地方,进行相应文件的修改。
作为本发明技术方案的进一步限定,所述方法还包括:
当需要导出项目代码时,直接将创建的项目模块导出,即实现相应修改文件的导出;
当代码库需要更新时,将总项目模块导出,再将总项目模块的相关项目代码导入到新的代码库中。
作为本发明技术方案的进一步限定,对项目需要编写代码的文件,通过设置分配文件优先编辑权、优先编译权、文件映射方法将文件指定到具体的项目模块中的步骤中,文件映射方法包括:
复制一份待修改的文件,指定到一个项目名称目录下,形成源文件路径在原位置下,目标待修改文件在所述项目名称下的关系。
作为本发明技术方案的进一步限定,对项目需要编写代码的文件,通过设置分配文件优先编辑权、优先编译权、文件映射方法将文件指定到具体的项目模块中的步骤中,设置优先编辑权包括:
设定项目间的互斥变量j,当j的值对应到一个项目名称时,其它项目的文件处于未激活状态,即只有在该项目名称项目下,编写相关文件中的代码。
作为本发明技术方案的进一步限定,对项目需要编写代码的文件,通过设置分配文件优先编辑权、优先编译权、文件映射方法将文件指定到具体的项目模块中的步骤中,设置优先编译权包括:
当进行编译时,编译环境根据全局变量j,所指向的项目名称将属于该项目的各文件,通过反向映射,覆盖到代码库中各源文件所在位置,实现对该项目的优先编译。
作为本发明技术方案的进一步限定,通过特定修改方式,按项目名称B的需求,进行项目名称、程序、映射目录位置的更改的步骤中,特定修改方式包括:
将需要修改的文件通过统一操作替换的方式,变换该文件所在的目录编译路径,使得该文件所在路径能被编译器所识别;或,
通过统一替换方式,将原项目模块所涉及项目名称部分,进行统一名称变更成项目名称B。
作为本发明技术方案的进一步限定,在项目名称B需要更改代码的地方,进行相应文件的修改的步骤包括:
文件编译时,编译器只识别项目名称B中相关的文件,在预编译环境中,将根据项目名称B设置的优先编译权特征变量,将项目名称B下相关的文件,按照被映射的方式,从项目名称B的路径,拷贝到原始代码库的路径中,覆盖原有文件,当编译开始时,编译器按其原始的路径对文件进行编译,生成的目标文件,即为满足项目名称B的目标文件。
第二方面,本发明技术方案提供一种多项目代码文件重用的装置,包括创建模块、设置模块、修改执行模块和导入导出执行模块;
创建模块,用于在代码库中创建一个总项目模块,根据需要在总项目模块下,创建项目模块;
设置模块,用于对项目需要编写代码的文件,通过设置分配文件优先编辑权、优先编译权、文件映射方法将文件指定到具体的项目模块中;同时定义互斥的变量,用于区分不同的项目;
修改执行模块,用于当项目重建时,在总项目模块下创建新的项目模块,将待重建的项目模块中所有文件复制到新的项目模块中,将待重建的项目名称相关语句的地方,通过特定修改方式,按新的项目模块的项目名称的需求,进行项目名称、程序、映射目录位置的更改;
导入导出执行模块,用于当代码库需要更新时,将总项目模块导出,再将总项目模块导入到新的代码库中。
作为本发明技术方案的进一步限定,待重建的项目模块为项目模块A,新的项目模块为项目模块B,
创建模块,在总项目模块下,创建项目模块B,设定项目名称B;
修改执行模块,将项目模块A中所有文件复制到项目模块B中,将项目名称A相关语句的地方,通过特定修改方式,按项目名称B的需求,进行项目名称、程序、映射目录位置的更改;设置关闭项目名称A的项目,让项目名称B的项目生效,并定义项目间互斥变量,让项目名称B获得相关文件的优先编辑、编译权,在项目名称B需要更改代码的地方,进行相应文件的修改。
作为本发明技术方案的进一步限定,导入导出执行模块,具体用于当需要导出项目代码时,直接将创建的项目模块导出,即实现相应修改文件的导出;当代码库需要更新时,将总项目模块导出,再将总项目模块的相关项目代码导入到新的代码库中。
需要说明的是,文件映射方法包括:复制一份待修改的文件,指定到一个项目名称目录下,形成源文件路径在原位置下,目标待修改文件在所述项目名称下的关系。
优先编辑权包括:设定项目间的互斥变量j,当j的值对应到一个项目名称时,其它项目的文件处于未激活状态,即只有在该项目名称项目下,编写相关文件中的代码。
优先编译权包括:当进行编译时,编译环境根据全局变量j,所指向的项目名称将属于该项目的各文件,通过反向映射,覆盖到代码库中各源文件所在位置,实现对该项目的优先编译。
特定修改方式包括:将需要修改的文件通过统一操作替换的方式,变换该文件所在的目录编译路径,使得该文件所在路径能被编译器所识别;或,通过统一替换方式,将原项目模块所涉及项目名称部分,进行统一名称变更成项目名称B。
修改执行模块,具体用于文件编译时,编译器只识别项目名称B中相关的文件,在预编译环境中,将根据项目名称B设置的优先编译权特征变量,将项目名称B下相关的文件,按照被映射的方式,从项目名称B的路径,拷贝到原始代码库的路径中,覆盖原有文件,当编译开始时,编译器按其原始的路径对文件进行编译,生成的目标文件,即为满足项目名称B的目标文件。
第三方面,本发明技术方案还提供一种电子设备,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的计算机程序指令,所述计算机程序指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面所述的多项目代码文件重用的方法。
第四方面,本发明技术方案还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如第一方面所述的多项目代码文件重用的方法。
从以上技术方案可以看出,本发明具有以下优点:1.更好地解决了代码重用的问题;2.能避免同时打开多个项目工程造成的内存,cpu,资源占用造成的系统缓慢;3.能有效解决多个项目同时修改一个文件,或多个文件时,造成的项目管理混乱问题;4.更容易模块化导入,导出工程项目模块,可移植性强。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的方法的示意性流程图。
图2是本发明一个实施例的装置的示意性框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
如图1所示,本发明实施例提供一种多项目代码文件重用的方法,包括如下步骤:
步骤1:在代码库中创建一个总项目模块,根据需要在总项目模块下,创建项目模块;
步骤2:对项目需要编写代码的文件,通过设置分配文件优先编辑权、优先编译权、文件映射方法将文件指定到具体的项目模块中;同时定义互斥的变量,用于区分不同的项目;
步骤3:当项目重建时,在总项目模块下创建新的项目模块,将待重建的项目模块中所有文件复制到新的项目模块中,将待重建的项目名称相关语句的地方,通过特定修改方式,按新的项目模块的项目名称的需求,进行项目名称、程序、映射目录位置的更改;
步骤4:当代码库需要更新时,将总项目模块导出,再将总项目模块导入到新的代码库中。
在代码库中,创建一个总项目模块,根据需要,在该总项目模块下,创建项目模块;对具体项目中,需要编写代码的文件,通过设置优先权选择的方法,将该文件指定到具体的项目模块中;同时定义互斥的变量,用于区分不同的项目,当该文件被指定到不同的项目模块中时,被定义的互斥变量,就指定了特定项目模块下,相应文件才能被编辑及编译;该方法实现了总体codebase的重用,不需要重复拷贝代码库,进行另外项目的重建;从而节省了硬盘空间,以及多项目同时打开时,造成的内存占用,编译速度慢的问题;由于被修改的文件,根据不同项目,所呈现的修改内容不一样,这样避免了传统上,多个项目同时修改一个文件可能造成的代码更改混乱的问题;当代码库需要更新时,只需要将之前总的项目模块导出,再将该模块导入到新的代码库中,即可实现多项目文件的移植,从而实现了BIOS项目的模块化。
本发明实施例提供一种多项目代码文件重用的方法,包括如下步骤:
S1:在现有代码库中,创建一个总项目模块,创建一个项目模块A,在项目中,设定项目名称ProjectA,将相关要修改的文件,设定其优先编辑、优先编译权,并映射到到该项目模块A目录下;
S2:在总项目模块下,再创建项目模块B,项目名称为ProjectB,将项目模块A中所有文件copy到项目模块B中,将项目名称ProjectA相关语句的地方,通过特定修改方式,按ProjectB需求,进行ProjectB名称,程序,映射目录位置的更改;
S3:关闭ProjectA开关,让ProjectB项目生效,并定义项目间互斥变量,让ProjectB获得相关文件的优先编辑,编译权,在ProjectB需要更改代码的地方,进行相应文件的修改;
S4:当需要导出导入ProjectB代码时,直接将创建的项目模块B导出,即可实现相应修改文件的导出,再用相同的方式,将项目代码导入到新的代码库中。在这里,之前项目B修改的记录仍然被代入到新的代码库中;方便了项目模块的移植。
需要说明的是,当需要导出项目代码时,直接将创建的项目模块导出,即实现相应修改文件的导出;当代码库需要更新时,将总项目模块导出,再将总项目模块的相关项目代码导入到新的代码库中。
需要说明的是,步骤S1中的文件优先编辑权、文件优先编译权,文件映射的方法如下:
文件映射指,在开发工具中,把待修改的文件,复制一份,指定到projectA目录下,形成源文件路径在原位置下,目标待修改文件在ProjectA下的关系;
优先编辑权指,在开发环境中设定项目间的互斥变量j,当j的值对应到projectA时,其它项目的文件处于未激活状态,即可在projectA项目下,编写相关文件中的代码;
优先编译权指,当进行编译时,编译环境根据全局变量j,所指向的工程目录,如ProjectA,将属于该项目的各文件,通过反向映射,覆盖到代码库中各源文件所在位置,即实现对该项目的优先编译。
步骤S2中通过特定修改方式,按项目名称B的需求,进行项目名称、程序、映射目录位置的更改的步骤中,特定修改方式包括:
(1)将需要修改的文件通过统一操作替换的方式,变换该文件所在的目录编译路径,使得该文件所在路径能被编译器所识别;(2)通过统一替换方式,将原项目模块所涉及项目名称部分,进行统一名称变更成项目名称B。
步骤S3中,因为ProjectA不生效,编译时,编译器只识别ProjectB中相关的文件,在预编译环境中,将根据ProjectB的设置优先编译权特征变量,将ProjectB下相关的文件,按照它们被映射的方式,从projectB的路径,拷贝到原始代码库的路径中,覆盖原有文件,当编译开始时,编译器只需要按其原始的路径对文件进行编译,生成的目标文件,即为满足projectB的目标文件。从而实现了不同项目间,对相同文件,相同位置代码的更改;并且项目间不相互干扰;在同一UEFI开发环境下,打开一套代码即可查看不同项目相关的修改情况;不占用多的内存,硬盘空间。
如图2所示,本发明实施例提供一种多项目代码文件重用的装置,包括创建模块、设置模块、修改执行模块和导入导出执行模块;
创建模块,用于在代码库中创建一个总项目模块,根据需要在总项目模块下,创建项目模块;
设置模块,用于对项目需要编写代码的文件,通过设置分配文件优先编辑权、优先编译权、文件映射方法将文件指定到具体的项目模块中;同时定义互斥的变量,用于区分不同的项目;
修改执行模块,用于当项目重建时,在总项目模块下创建新的项目模块,将待重建的项目模块中所有文件复制到新的项目模块中,将待重建的项目名称相关语句的地方,通过特定修改方式,按新的项目模块的项目名称的需求,进行项目名称、程序、映射目录位置的更改;
导入导出执行模块,用于当代码库需要更新时,将总项目模块导出,再将总项目模块导入到新的代码库中。
需要说明的是,待重建的项目模块为项目模块A,新的项目模块为项目模块B,创建模块,在总项目模块下,创建项目模块B,设定项目名称B;
修改执行模块,将项目模块A中所有文件复制到项目模块B中,将项目名称A相关语句的地方,通过特定修改方式,按项目名称B的需求,进行项目名称、程序、映射目录位置的更改;设置关闭项目名称A的项目,让项目名称B的项目生效,并定义项目间互斥变量,让项目名称B获得相关文件的优先编辑、编译权,在项目名称B需要更改代码的地方,进行相应文件的修改。
导入导出执行模块,具体用于当需要导出项目代码时,直接将创建的项目模块导出,即实现相应修改文件的导出;当代码库需要更新时,将总项目模块导出,再将总项目模块的相关项目代码导入到新的代码库中。
需要说明的是,文件映射方法包括:复制一份待修改的文件,指定到一个项目名称目录下,形成源文件路径在原位置下,目标待修改文件在所述项目名称下的关系。
优先编辑权包括:设定项目间的互斥变量j,当j的值对应到一个项目名称时,其它项目的文件处于未激活状态,即只有在该项目名称项目下,编写相关文件中的代码。
优先编译权包括:当进行编译时,编译环境根据全局变量j,所指向的项目名称将属于该项目的各文件,通过反向映射,覆盖到代码库中各源文件所在位置,实现对该项目的优先编译。
特定修改方式包括:将需要修改的文件通过统一操作替换的方式,变换该文件所在的目录编译路径,使得该文件所在路径能被编译器所识别;或,通过统一替换方式,将原项目模块所涉及项目名称部分,进行统一名称变更成项目名称B。
修改执行模块,具体用于文件编译时,编译器只识别项目名称B中相关的文件,在预编译环境中,将根据项目名称B设置的优先编译权特征变量,将项目名称B下相关的文件,按照被映射的方式,从项目名称B的路径,拷贝到原始代码库的路径中,覆盖原有文件,当编译开始时,编译器按其原始的路径对文件进行编译,生成的目标文件,即为满足项目名称B的目标文件。
本发明实施例还提供一种电子设备,所述电子设备包括:处理器、通信接口、存储器和总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信。总线可以用于电子设备与传感器之间的信息传输。处理器可以调用存储器中的逻辑指令,以执行如下方法:步骤1:在代码库中创建一个总项目模块,根据需要在总项目模块下,创建项目模块;步骤2:对项目需要编写代码的文件,通过设置分配文件优先编辑权、优先编译权、文件映射方法将文件指定到具体的项目模块中;同时定义互斥的变量,用于区分不同的项目;步骤3:当项目重建时,在总项目模块下创建新的项目模块,将待重建的项目模块中所有文件复制到新的项目模块中,将待重建的项目名称相关语句的地方,通过特定修改方式,按新的项目模块的项目名称的需求,进行项目名称、程序、映射目录位置的更改;步骤4:当代码库需要更新时,将总项目模块导出,再将总项目模块导入到新的代码库中。
该方法实现了总体codebase的重用,不需要重复拷贝代码库,进行另外项目的重建;从而节省了硬盘空间,以及多项目同时打开时,造成的内存占用,编译速度慢的问题;由于被修改的文件,根据不同项目,所呈现的修改内容不一样,这样避免了传统上,多个项目同时修改一个文件可能造成的代码更改混乱的问题;当代码库需要更新时,只需要将之前总的项目模块导出,再将该模块导入到新的代码库中,即可实现多项目文件的移植,从而实现了BIOS项目的模块化。
此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令使计算机执行上述方法实施例所提供的方法,例如包括:S1:在现有代码库中,创建一个总项目模块,创建一个项目模块A,在项目中,设定项目名称ProjectA,将相关要修改的文件,设定其优先编辑、优先编译权,并映射到到该项目模块A目录下;S2:在总项目模块下,再创建项目模块B,项目名称为ProjectB,将项目模块A中所有文件copy到项目模块B中,将项目名称ProjectA相关语句的地方,通过特定修改方式,按ProjectB需求,进行ProjectB名称,程序,映射目录位置的更改;S3:关闭ProjectA开关,让ProjectB项目生效,并定义项目间互斥变量,让ProjectB获得相关文件的优先编辑,编译权,在ProjectB需要更改代码的地方,进行相应文件的修改;S4:当需要导出导入ProjectB代码时,直接将创建的项目模块B导出,即可实现相应修改文件的导出,再用相同的方式,将项目代码导入到新的代码库中。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种多项目代码文件重用的方法,其特征在于,包括如下步骤:
在代码库中创建一个总项目模块,根据需要在总项目模块下,创建项目模块;
对项目需要编写代码的文件,通过设置分配文件优先编辑权、优先编译权、文件映射方法将文件指定到具体的项目模块中;同时定义互斥的变量,用于区分不同的项目;
当项目重建时,在总项目模块下创建新的项目模块,将待重建的项目模块中所有文件复制到新的项目模块中,将待重建的项目名称相关语句的地方,通过特定修改方式,按新的项目模块的项目名称的需求,进行项目名称、程序、映射目录位置的更改;
当代码库需要更新时,将总项目模块导出,再将总项目模块导入到新的代码库中。
2.根据权利要求1所述的多项目代码文件重用的方法,其特征在于,当项目重建时,在总项目模块下创建新的项目模块,将待重建的项目模块中所有文件复制到新的项目模块中,将待重建的项目名称相关语句的地方,通过特定修改方式,按新的项目模块的项目名称的需求,进行项目名称、程序、映射目录位置的更改的步骤中,待重建的项目模块为项目模块A,新的项目模块为项目模块B,具体包括:
在总项目模块下,创建项目模块B,设定项目名称B,将项目模块A中所有文件复制到项目模块B中,将项目名称A相关语句的地方,通过特定修改方式,按项目名称B的需求,进行项目名称、程序、映射目录位置的更改;
设置关闭项目名称A的项目,让项目名称B的项目生效,并定义项目间互斥变量,让项目名称B获得相关文件的优先编辑、编译权,在项目名称B需要更改代码的地方,进行相应文件的修改。
3.根据权利要求1所述的多项目代码文件重用的方法,其特征在于,当代码库需要更新时,将总项目模块导出,再将总项目模块导入到新的代码库中的步骤包括:
当需要导出项目代码时,直接将创建的项目模块导出,即实现相应修改文件的导出;
当代码库需要更新时,将总项目模块导出,再将总项目模块的相关项目代码导入到新的代码库中。
4.根据权利要求1所述的多项目代码文件重用的方法,其特征在于,对项目需要编写代码的文件,通过设置分配文件优先编辑权、优先编译权、文件映射方法将文件指定到具体的项目模块中的步骤中,文件映射方法包括:
复制一份待修改的文件,指定到一个项目名称目录下,形成源文件路径在原位置下,目标待修改文件在所述项目名称下的关系。
5.根据权利要求1所述的多项目代码文件重用的方法,其特征在于,对项目需要编写代码的文件,通过设置分配文件优先编辑权、优先编译权、文件映射方法将文件指定到具体的项目模块中的步骤中,设置优先编辑权、优先编译权包括:
设定项目间的互斥变量j,当j的值对应到一个项目名称时,其它项目的文件处于未激活状态,即只有在该项目名称项目下,编写相关文件中的代码;
当进行编译时,编译环境根据全局变量j,所指向的项目名称将属于该项目的各文件,通过反向映射,覆盖到代码库中各源文件所在位置,实现对该项目的优先编译。
6.根据权利要求2所述的多项目代码文件重用的方法,其特征在于,通过特定修改方式,按项目名称B的需求,进行项目名称、程序、映射目录位置的更改的步骤中,特定修改方式包括:
将需要修改的文件通过统一操作替换的方式,变换该文件所在的目录编译路径,使得该文件所在路径能被编译器所识别;或,
通过统一替换方式,将原项目模块所涉及项目名称部分,进行统一名称变更成项目名称B。
7.根据权利要求6所述的多项目代码文件重用的方法,其特征在于,在项目名称B需要更改代码的地方,进行相应文件的修改的步骤包括:
文件编译时,编译器只识别项目名称B中相关的文件,在预编译环境中,将根据项目名称B设置的优先编译权特征变量,将项目名称B下相关的文件,按照被映射的方式,从项目名称B的路径,拷贝到原始代码库的路径中,覆盖原有文件,当编译开始时,编译器按其原始的路径对文件进行编译,生成的目标文件,即为满足项目名称B的目标文件。
8.一种多项目代码文件重用的装置,其特征在于,包括创建模块、设置模块、修改执行模块和导入导出执行模块;
创建模块,用于在代码库中创建一个总项目模块,根据需要在总项目模块下,创建项目模块;
设置模块,用于对项目需要编写代码的文件,通过设置分配文件优先编辑权、优先编译权、文件映射方法将文件指定到具体的项目模块中;同时定义互斥的变量,用于区分不同的项目;
修改执行模块,用于当项目重建时,在总项目模块下创建新的项目模块,将待重建的项目模块中所有文件复制到新的项目模块中,将待重建的项目名称相关语句的地方,通过特定修改方式,按新的项目模块的项目名称的需求,进行项目名称、程序、映射目录位置的更改;
导入导出执行模块,用于当代码库需要更新时,将总项目模块导出,再将总项目模块导入到新的代码库中。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的计算机程序指令,所述计算机程序指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任一项权利要求所述的多项目代码文件重用的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至7任一项权利要求所述的多项目代码文件重用的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211625550.3A CN115756451A (zh) | 2022-12-16 | 2022-12-16 | 一种多项目代码文件重用的方法、装置、设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211625550.3A CN115756451A (zh) | 2022-12-16 | 2022-12-16 | 一种多项目代码文件重用的方法、装置、设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115756451A true CN115756451A (zh) | 2023-03-07 |
Family
ID=85346761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211625550.3A Pending CN115756451A (zh) | 2022-12-16 | 2022-12-16 | 一种多项目代码文件重用的方法、装置、设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115756451A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115794174A (zh) * | 2023-02-01 | 2023-03-14 | 北京乐研科技股份有限公司 | 一种项目程序导入的更新方法 |
CN116661757A (zh) * | 2023-07-26 | 2023-08-29 | 北京乐研科技股份有限公司 | 一种程序模块化的文件优先编译系统和方法 |
CN117130618A (zh) * | 2023-06-13 | 2023-11-28 | 东信和平科技股份有限公司 | 智能卡可执行文件的增量编译方法、装置、设备 |
-
2022
- 2022-12-16 CN CN202211625550.3A patent/CN115756451A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115794174A (zh) * | 2023-02-01 | 2023-03-14 | 北京乐研科技股份有限公司 | 一种项目程序导入的更新方法 |
CN117130618A (zh) * | 2023-06-13 | 2023-11-28 | 东信和平科技股份有限公司 | 智能卡可执行文件的增量编译方法、装置、设备 |
CN116661757A (zh) * | 2023-07-26 | 2023-08-29 | 北京乐研科技股份有限公司 | 一种程序模块化的文件优先编译系统和方法 |
CN116661757B (zh) * | 2023-07-26 | 2023-10-03 | 北京乐研科技股份有限公司 | 一种程序模块化的文件优先编译系统和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7992141B2 (en) | Method and apparatus for building executable computer programs using compiled program libraries | |
CN100462920C (zh) | 为优化的程序生成展开信息 | |
CN107861728B (zh) | 用于传统程序语言向现代程序语言转换的方法及其系统 | |
CN115756451A (zh) | 一种多项目代码文件重用的方法、装置、设备、存储介质 | |
CN113872948A (zh) | 一种执行智能合约的方法、区块链节点和节点设备 | |
US6795963B1 (en) | Method and system for optimizing systems with enhanced debugging information | |
US5764989A (en) | Interactive software development system | |
US9213707B2 (en) | Ordered access of interrelated data files | |
CN110955431A (zh) | 编译环境的处理方法及装置 | |
CN111061638B (zh) | 一种iOS系统调试的方法、装置及服务器 | |
CN111090433A (zh) | 一种数据处理的方法、装置和存储介质 | |
CN111768184A (zh) | 一种执行智能合约的方法及区块链节点 | |
US8914782B2 (en) | Optimization of declarative queries | |
CN109558121A (zh) | 接口驱动程序的开发方法、装置、设备及存储介质 | |
CN113220326B (zh) | 智能合约升级方法及区块链系统 | |
Ceccato et al. | Migrating legacy data structures based on variable overlay to Java | |
CN113220327B (zh) | 智能合约升级方法及区块链系统 | |
CN110045962B (zh) | 一种支持多语言脚本执行的方法和装置 | |
US11615014B2 (en) | Using relocatable debugging information entries to save compile time | |
Kanies | Puppet. | |
CN115794174A (zh) | 一种项目程序导入的更新方法 | |
CN114579135A (zh) | 一种安装包生成方法及装置 | |
Kazerooni-Zand et al. | Minimizing ripple recompilation in a persistent software environment | |
CN116931947A (zh) | 一种优化wasm字节码的方法及执行方法、计算机设备及存储介质 | |
De Man | Generalized combinators in functional languages and their applications |
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 |