CN111198713B - 基于Android的同份源代码兼容各客户需求的方法和装置 - Google Patents
基于Android的同份源代码兼容各客户需求的方法和装置 Download PDFInfo
- Publication number
- CN111198713B CN111198713B CN202010009182.4A CN202010009182A CN111198713B CN 111198713 B CN111198713 B CN 111198713B CN 202010009182 A CN202010009182 A CN 202010009182A CN 111198713 B CN111198713 B CN 111198713B
- Authority
- CN
- China
- Prior art keywords
- code
- source code
- source
- customized
- client
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 230000008676 import Effects 0.000 claims abstract description 15
- 238000004806 packaging method and process Methods 0.000 claims abstract description 9
- 238000006243 chemical reaction Methods 0.000 claims description 18
- 238000012549 training Methods 0.000 claims description 8
- 238000003062 neural network model Methods 0.000 claims description 7
- 230000010354 integration Effects 0.000 claims description 4
- 230000001105 regulatory effect Effects 0.000 claims description 4
- 230000000694 effects Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008685 targeting Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Library & Information Science (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供了一种基于Android的同份源代码兼容各客户需求的方法和装置,运用于代码协同共享领域,其方法包括:在与代码数据库预关联的文件夹中创建子文件夹,以根据不同的客户创建对应的文件夹;然后,向子文件夹中导入源码共享模型和客户patch文件,并采用预存于源码共享模型中的patch脚本将客户patch文件导入至源代码中,以生成与子文件夹对应关联的定制化源代码,从而根据客户要求实现对应代码的定制;最终,将定制化源代码整合于子文件夹中,并将子文件夹进行压缩打包生成代码数据包,再交付代码数据包,通过将代码数据库中的定制后的源代码整合至对应的客户子文件夹中,实现代码数据库中同份源代码能够兼容各客户需求的效果。
Description
技术领域
本申请涉及代码协同共享技术领域,特别涉及为一种基于Android的同份源代码兼容各客户需求的方法和装置。
背景技术
持续交付(Continuous delivery,CD),是一种软件工程手法,让软件产品的交付过程在一个短周期内进行持续交付,以保证软件源代码可以稳定、持续的保持在随时变动的状况。它的目标在于让软件的构建、测试与发布变得更快以及更频繁,这种方式可以减少软件开发的成本与时间,减少风险。
对于现有持续交付,每个项目都存在差异性,每个项目若想实现完整的交付流程,则需要根据客户每个项目的差异性而专门定制对应的交付流程,以及售卖软件企业所研发的软件产品在细节、功能、页面等需要应客户进行修改调整,之后交付客户,导致软件企业需要付出大量人力成本、时间成本进行调整修改,有时甚至会因为修改调整出现大量不可预见的bug问题。
使用现有的交付技术方案,需要对每个项目单独设计部署流程,虽然程序有使用共性,但是因为每个项目的复杂性和多样性,每承接一个项目,都需要根据项目的复杂度,花费数天的工作量定制对应的交付模型。
发明内容
本申请旨在解决根据不同的客户要求对源代码修改时,各个分支的代码均需修改,从而造成时间和人力成本浪费的技术问题,现提供一种基于Android的同份源代码兼容各客户需求的方法和装置。
本申请为解决技术问题采用如下技术手段:
本申请提出一种基于Android的同份源代码兼容各客户需求的方法,包括:
在与代码数据库预关联的文件夹中创建子文件夹,其中所述代码数据库存储源代码;
向所述子文件夹中导入源码共享模型和客户patch文件,其中所述源码共享模型为预训练的神经网络模型,所述客户patch文件为根据客户需要文本解析生成的定制化代码;
采用预存于所述源码共享模型中的patch脚本将所述客户patch文件导入至所述源代码中,以生成与所述子文件夹对应关联的定制化源代码;
将所述定制化源代码整合于所述子文件夹中,并将所述子文件夹进行压缩打包生成代码数据包;
交付所述代码数据包。
进一步地,所述向所述子文件夹中导入源码共享模型和客户patch文件的步骤之前,包括:
采用BERT模型语义分析预获取的客户需求文本,以识别出各待调整组件对应的组件调整要求,所述客户需求文本为文本数据形式;
根据所述待调整组件与对应的组件调整要求制成客户patch文件。
进一步地,所述采用预存于所述源码共享模型中的patch脚本将所述客户patch文件导入至所述源代码中,以生成与所述子文件夹对应关联的定制化源代码的步骤包括:
识别所述源代码中与所述客户patch文件中的待调整组件对标的代码段;
采用所述源代码共享模型将所述客户patch文件中组件调整要求转换为定制化代码段,并根据所述待调整组件与组件调整要求的关联使对标后的代码段与定制化代码段相关联;
采用所述源码共享模型中的patch脚本通过git的导入指令将所述定制化代码段对应的导入至对标后的代码段中,直至所有制化代码段对应导入至代码段后,形成定制化源代码。
进一步地,所述识别所述源代码中与所述客户patch文件中的待调整组件对标的代码段的步骤包括:
根据所述待调整组件的预设功能性生成对应的第一代码标签;
根据所述第一代码标签从所述源代码中定位出与第一代码标签相同代码的第二代码标签,确定所述源代码中与第二代码标签相关的代码为代码段。
进一步地,所述将所述定制化源代码整合于所述子文件夹中的步骤包括:
从所述代码数据库中复制以生成的定制化源代码,删除在所述代码数据库中已添加至源代码的客户patch文件且保留源代码;
将复制出的定制化源代码整合于所述所述子文件夹中。
本申请还提出一种基于Android的同份源代码兼容各客户需求的装置,包括:
创建单元,用于在与代码数据库预关联的文件夹中创建子文件夹,其中所述代码数据库存储源代码;
第一导入单元,用于向所述子文件夹中导入源码共享模型和客户patch文件,其中所述源码共享模型为预训练的神经网络模型,所述客户patch文件为根据客户需要文本解析生成的定制化代码;
第二导入单元,用于采用预存于所述源码共享模型中的patch脚本将所述客户patch文件导入至所述源代码中,以生成与所述子文件夹对应关联的定制化源代码;
整合单元,用于将所述定制化源代码整合于所述子文件夹中,并将所述子文件夹进行压缩打包生成代码数据包;
交付单元,用于交付所述代码数据包。
进一步地,基于Android的同份源代码兼容各客户需求的装置包括:
语义分析单元,用于采用BERT模型语义分析预获取的客户需求文本,以识别出各待调整组件对应的组件调整要求,所述客户需求文本为文本数据形式;
Patch制作单元,用于根据所述待调整组件与对应的组件调整要求制成客户patch文件。
进一步地,所述第二导入单元包括:
识别模块,用于识别所述源代码中与所述客户patch文件中的待调整组件对标的代码段;
代码转换模块,用于采用所述源代码共享模型将所述客户patch文件中组件调整要求转换为定制化代码段,并根据所述待调整组件与组件调整要求的关联使对标后的代码段与定制化代码段相关联;
导入模块,用于采用所述源码共享模型中的patch脚本通过git的导入指令将所述定制化代码段对应的导入至对标后的代码段中,直至所有制化代码段对应导入至代码段后,形成定制化源代码。
进一步地,所述识别模块包括:
标签生成子模块,用于根据所述待调整组件的预设功能性生成对应的第一代码标签;
代码定位子模块,用于根据所述第一代码标签从所述源代码中定位出与第一代码标签相同代码的第二代码标签,确定所述源代码中与第二代码标签相关的代码为代码段。
进一步地,所述基于Android的同份源代码兼容各客户需求的装置包括:
删除单元,用于将存储在上述源码共享模型中的定制化源代码删除。
本申请提供了基于Android的同份源代码兼容各客户需求的方法和装置,具有以下有益效果:
在与代码数据库预关联的文件夹中创建子文件夹,以根据不同的客户创建对应的文件夹;然后,向子文件夹中导入源码共享模型和客户patch文件,并采用预存于源码共享模型中的patch脚本将客户patch文件导入至源代码中,以生成与子文件夹对应关联的定制化源代码,从而根据客户要求实现对应代码的定制;最终,将定制化源代码整合于子文件夹中,并将子文件夹进行压缩打包生成代码数据包,再交付代码数据包,通过将代码数据库中的定制后的源代码整合至对应的客户子文件夹中,实现代码数据库中同份源代码能够兼容各客户需求的效果,达到解决根据不同的客户要求对源代码修改时,各个分支的代码均需修改,以造成时间和人力成本浪费问题的效果。
附图说明
图1为本申请基于Android的同份源代码兼容各客户需求的方法一个实施例的流程示意图;
图2为本申请基于Android的同份源代码兼容各客户需求的方法一个实施例的流程示意图;
图3为本申请基于Android的同份源代码兼容各客户需求的方法中组件的示意图;
图4为本申请基于Android的同份源代码兼容各客户需求的装置的结构框图。
本申请为目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
下面将结合本申请的实施例中的附图,对本申请的实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参考附图1,为本申请第一实施例中的基于Android的同份源代码兼容各客户需求的方法的流程示意图;
本申请提出一种服务器,服务器包括服务器处理终端,以该服务器作为执行主体,服务器执行基于Android的同份源代码兼容各客户需求的方法。
本申请提出一种基于Android的同份源代码兼容各客户需求的方法,包括:
S1,在与代码数据库预关联的文件夹中创建子文件夹,其中代码数据库存储源代码;
代码数据库设于服务器,当开发集群将源代码编码完成时,服务器接收开发集群上传的源代码,并将源代码存储于代码数据库中。
服务器将代码数据库与一文件夹进行关联,使服务器能够通过文件夹将代码数据库中的源代码导入至该文件夹内;基于此,为实现同份源代码兼容各客户需求,在该文件夹中设立子文件夹,子文件夹与对应客户数量一致,且子文件夹的命名以客户名称或编码进行命名;在创建对应数量的子文件夹并命名后,后续会根据各客户的需求对应进行源代码的调整修改,从而得到各个客户对应的定制化源代码,随后将定制化源代码导入至与其相对应的子文件夹中整合,最终交付,从而实现同份源代码兼容各客户需求的效果。
S2,向子文件夹中导入源码共享模型和客户patch文件,其中源码共享模型为预训练的神经网络模型,客户patch文件为根据客户需要文本解析生成的定制化代码;
在服务器根据客户创建对应的子文件夹后,向子文件夹中导入源码共享模型和客户patch文件,具体的,上述源码共享模型为工作人员在服务器内预先训练的神经网络模型,上述的客户patch文件为根据客户需求生成的代码文本;
上述源码共享模型的训练方法为:
服务器获取工作人员输入的模型构建代码文本,以根据模型构建代码文本构成初步模型,该初步模型包括文本存储层、代码暂存层和代码转化层,其中文本存储层用于记录客户需求文本,代码暂存层用于暂时存储源代码,代码转化层用于根据文本的功能性要求生成对应的代码文本;
初步模型接收工作人员输入的若干训练文本,该训练文本包括功能性要求文本,功能性要求文本例如:调整背景颜色为红色,将logo上移10px等。
采用文本存储层存储上述若干训练文本,代码暂存层复制代码数据库中的源代码进行暂存,代码转换层根据训练文本的功能性要求进行代码转换,代码转换例如:调整背景颜色为红色,即为background=255,0,0;将文本存储层、代码暂存层和代码转化层相关联,从而构建得到源码共享模型。
S3,采用预存于源码共享模型中的patch脚本将客户patch文件导入至源代码中,以生成与子文件夹对应关联的定制化源代码;
在服务器将源码共享模型和客户patch文件导入至对应的子文件夹后,采用预存于源码共享模型中的Patch脚本将客户patch文件导入至源代码中。
由上述可知,源码共享模型中的代码暂存层存储有源代码,服务器通过patch脚本将客户patch文件写入至该代码暂存层内源代码中,从而生成定制化源代码;如附图2,附图2为本申请的基于Android的同份源代码兼容各客户需求的方法步骤S3的流程示意图,具体实施方式如下:
S31,识别源代码中与客户patch文件中的待调整组件对标的代码段;
客户patch文件包括待调整组件和组件调整要求,参考附图3,即为客户patch文件的待调整组件的示意图;待调整组件为客户要求的源代码中需要进行调整的某一组件,组件调整要求为要求该组件调整的内容文本;
S32,采用源代码共享模型将客户patch文件中组件调整要求转换为定制化代码段,并根据待调整组件与组件调整要求的关联使对标后的代码段与定制化代码段相关联;
由上述可知,源代码共享模型中的代码转换层根据组件调整要求的功能性转换为对应的定制化代码段。
因为待调整组件与组件调整要求是由同一客户patch文件拆分而来具备关联性,则根据待调整组件与组件调整要求的关联使对标后的代码段与定制化代码段相关联,以便于后续将定制化代码段调整修改至对标后的代码段中,实现功能性调整。
S33,采用源码共享模型中的patch脚本通过git的导入指令将定制化代码段对应的导入至对标后的代码段中,直至所有制化代码段对应导入至代码段后,形成定制化源代码。
源码共享模型通过patch脚本采用git导入指令,将定制化代码段对应的导入至对标后的代码段中,上述的git导入指令为现有技术,本说明书不做赘述;
待所有的制化代码段对应导入至源代码的代码段后,形成定制化源代码。可以理解,该定制化源代码暂存于源码共享模型中的代码暂存层。
S4,将定制化源代码整合于子文件夹中,并将子文件夹进行压缩打包生成代码数据包;
服务器通过源码共享模型生成与客户要求文本对应的定制化源代码后,从源代码共享模型中的代码暂存层中调取定制化源代码,并整合至子文件夹中,随后服务器对该子文件件进行压缩打包,从而形成代码数据包。
S5,交付代码数据包。
服务器将代码数据包交付至客户的目标主机,实现交付过程。
在一个实施例中,向子文件夹中导入源码共享模型和客户patch文件的步骤之前,包括:
采用BERT模型语义分析预获取的客户需求文本,以识别出各待调整组件对应的组件调整要求,客户需求文本为文本数据形式;
根据待调整组件与对应的组件调整要求制成客户patch文件。
上述的BERT模型为谷歌2018年开源的语义识别模型,通过其语义分析客户需求文本,得到各待调整组件对应的组件调整要求。
在一个实施例中,识别源代码中与客户patch文件中的待调整组件对标的代码段的步骤包括:
根据待调整组件的预设功能性生成对应的第一代码标签;
根据第一代码标签从源代码中定位出与第一代码标签相同代码的第二代码标签,确定源代码中与第二代码标签相关的代码为代码段。
上述的待调整组件可以是logo等组件,例如:当待调整组件为logo时,则服务器生成的第一代码标签包括<div logo>、<class logo>等第一代码标签;根据该第一代码标签从代码暂存层的源代码中确定出相同代码的第二代码标签,当通过第一代码标签确定源代码中的第二代码标签后,服务器能够将组件调整要求对应的定制化代码段调整添加至第二代码标签相关联的代码段中,从而实现组件调节。
将定制化代码段调整添加至第二代码标签相关联的代码段中的方式:通过patch脚本添加如下git指令,添加的目的是为了在lunch的时候,可以执行到xxx/auto_patch/auto_patch.sh脚本将定制化代码段打入代码段中(其中,xxx是子文件夹的名称)
在一个实施例中,将定制化源代码整合于子文件夹中的步骤之后包括:
将存储在上述源码共享模型中的定制化源代码删除。
由上述可知,服务器将代码数据库中的源代码复制导入至源码共享模型中的代码暂存层中,当生成好的定制化源代码整合至子文件夹之后,服务器将源码共享模型的代码暂存层中的定制化源代码删除。
参考附图4,为本申请提出的一种基于Android的同份源代码兼容各客户需求的装置的结构框图,
一种基于Android的同份源代码兼容各客户需求的装置包括:
创建单元1,用于在与代码数据库预关联的文件夹中创建子文件夹,其中代码数据库存储源代码;
第一导入单元2,用于向子文件夹中导入源码共享模型和客户patch文件,其中源码共享模型为预训练的神经网络模型,客户patch文件为根据客户需要文本解析生成的定制化代码;
第二导入单元3,用于采用预存于源码共享模型中的patch脚本将客户patch文件导入至源代码中,以生成与子文件夹对应关联的定制化源代码;
整合单元4,用于将定制化源代码整合于子文件夹中,并将子文件夹进行压缩打包生成代码数据包;
交付单元5,用于交付代码数据包。
在一个实施例中,基于Android的同份源代码兼容各客户需求的装置包括:
语义分析单元,用于采用BERT模型语义分析预获取的客户需求文本,以识别出各待调整组件对应的组件调整要求,客户需求文本为文本数据形式;
Patch制作单元,用于根据待调整组件与对应的组件调整要求制成客户patch文件
在一个实施例中,上述第二导入单元3包括:
识别模块,用于识别源代码中与客户patch文件中的待调整组件对标的代码段;
代码转换模块,用于采用源代码共享模型将客户patch文件中组件调整要求转换为定制化代码段,并根据待调整组件与组件调整要求的关联使对标后的代码段与定制化代码段相关联;
导入模块,用于采用源码共享模型中的patch脚本通过git的导入指令将定制化代码段对应的导入至对标后的代码段中,直至所有制化代码段对应导入至代码段后,形成定制化源代码。
在一个实施例中,上述识别模块包括:
标签生成子模块,用于根据待调整组件的预设功能性生成对应的第一代码标签;
代码定位子模块,用于根据第一代码标签从源代码中定位出与第一代码标签相同代码的第二代码标签,确定源代码中与第二代码标签相关的代码为代码段
在一个实施例中,基于Android的同份源代码兼容各客户需求的装置包括:
删除单元,用于将存储在上述源码共享模型中的定制化源代码删除。
综上所述,在与代码数据库预关联的文件夹中创建子文件夹,以根据不同的客户创建对应的文件夹;然后,向子文件夹中导入源码共享模型和客户patch文件,并采用预存于源码共享模型中的patch脚本将客户patch文件导入至源代码中,以生成与子文件夹对应关联的定制化源代码,从而根据客户要求实现对应代码的定制;最终,将定制化源代码整合于子文件夹中,并将子文件夹进行压缩打包生成代码数据包,再交付代码数据包,通过将代码数据库中的定制后的源代码整合至对应的客户子文件夹中,实现代码数据库中同份源代码能够兼容各客户需求的效果。
尽管已经示出和描述了本申请的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本申请的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本申请的范围由所附权利要求及其等同物限定。
Claims (10)
1.一种基于Android的同份源代码兼容各客户需求的方法,其特征在于,包括:
在与代码数据库预关联的文件夹中创建子文件夹,其中所述代码数据库存储源代码;
向所述子文件夹中导入源码共享模型和客户patch文件,其中所述源码共享模型为预训练的神经网络模型,所述客户patch文件为根据客户需要文本解析生成的定制化代码;
模型包括文本存储层、代码暂存层和代码转化层,其中文本存储层用于记录客户需求文本,代码暂存层用于暂时存储源代码,代码转化层用于根据文本的功能性要求生成对应的代码文本;
采用文本存储层存储若干训练文本,代码暂存层复制代码数据库中的源代码进行暂存,代码转换层根据训练文本的功能性要求进行代码转换,将文本存储层、代码暂存层和代码转化层相关联,从而构建得到源码共享模型;
采用预存于所述源码共享模型中的patch脚本将所述客户patch文件导入至所述源代码中,以生成与所述子文件夹对应关联的定制化源代码;
识别所述源代码中与所述客户patch文件中的待调整组件对标的代码段;
采用所述源代码共享模型将所述客户patch文件中组件调整要求转换为定制化代码段;
采用所述源码共享模型中的patch脚本通过git的导入指令将所述定制化代码段对应的导入至对标后的代码段中;
源码共享模型中的代码暂存层存储有源代码,服务器通过patch脚本将客户patch文件写入至该代码暂存层内源代码中,从而生成定制化源代码;
将定制化源代码整合于所述子文件夹中,并将所述子文件夹进行压缩打包生成代码数据包;
交付所述代码数据包。
2.根据权利要求1所述的基于Android的同份源代码兼容各客户需求的方法,其特征在于,所述向所述子文件夹中导入源码共享模型和客户patch文件的步骤之前,包括:
采用BERT模型语义分析预获取的客户需求文本,以识别出各待调整组件对应的组件调整要求,所述客户需求文本为文本数据形式;
根据所述待调整组件与对应的组件调整要求制成客户patch文件。
3.根据权利要求2所述的基于Android的同份源代码兼容各客户需求的方法,其特征在于,所述采用预存于所述源码共享模型中的patch脚本将所述客户patch文件导入至所述源代码中,以生成与所述子文件夹对应关联的定制化源代码的步骤包括:
识别所述源代码中与所述客户patch文件中的待调整组件对标的代码段;
采用所述源代码共享模型将所述客户patch文件中组件调整要求转换为定制化代码段,并根据所述待调整组件与组件调整要求的关联使对标后的代码段与定制化代码段相关联;
采用所述源码共享模型中的patch脚本通过git的导入指令将所述定制化代码段对应的导入至对标后的代码段中,直至所有制化代码段对应导入至代码段后,形成定制化源代码。
4.根据权利要求3所述的基于Android的同份源代码兼容各客户需求的方法,其特征在于,所述识别所述源代码中与所述客户patch文件中的待调整组件对标的代码段的步骤包括:
根据所述待调整组件的预设功能性生成对应的第一代码标签;
根据所述第一代码标签从所述源代码中定位出与第一代码标签相同代码的第二代码标签,确定所述源代码中与第二代码标签相关的代码为代码段。
5.根据权利要求1所述的基于Android的同份源代码兼容各客户需求的方法,其特征在于,所述将所述定制化源代码整合于所述子文件夹中的步骤之后包括:
将存储在上述源码共享模型中的定制化源代码删除。
6.一种基于Android的同份源代码兼容各客户需求的装置,其特征在于,包括:
创建单元,用于在与代码数据库预关联的文件夹中创建子文件夹,其中所述代码数据库存储源代码;
第一导入单元,用于向所述子文件夹中导入源码共享模型和客户patch文件,其中所述源码共享模型为预训练的神经网络模型,所述客户patch文件为根据客户需要文本解析生成的定制化代码;
模型包括文本存储层、代码暂存层和代码转化层,其中文本存储层用于记录客户需求文本,代码暂存层用于暂时存储源代码,代码转化层用于根据文本的功能性要求生成对应的代码文本;
采用文本存储层存储若干训练文本,代码暂存层复制代码数据库中的源代码进行暂存,代码转换层根据训练文本的功能性要求进行代码转换,将文本存储层、代码暂存层和代码转化层相关联,从而构建得到源码共享模型;
第二导入单元,用于采用预存于所述源码共享模型中的patch脚本将所述客户patch文件导入至所述源代码中,以生成与所述子文件夹对应关联的定制化源代码;
识别所述源代码中与所述客户patch文件中的待调整组件对标的代码段;
采用所述源代码共享模型将所述客户patch文件中组件调整要求转换为定制化代码段;
采用所述源码共享模型中的patch脚本通过git的导入指令将所述定制化代码段对应的导入至对标后的代码段中;
源码共享模型中的代码暂存层存储有源代码,服务器通过patch脚本将客户patch文件写入至该代码暂存层内源代码中,从而生成定制化源代码;
整合单元,用于将定制化源代码整合于所述子文件夹中,并将所述子文件夹进行压缩打包生成代码数据包;
交付单元,用于交付所述代码数据包。
7.根据权利要求6所述的基于Android的同份源代码兼容各客户需求的装置,其特征在于,包括:
语义分析单元,用于采用BERT模型语义分析预获取的客户需求文本,以识别出各待调整组件对应的组件调整要求,所述客户需求文本为文本数据形式;
Patch制作单元,用于根据所述待调整组件与对应的组件调整要求制成客户patch文件。
8.根据权利要求7所述的基于Android的同份源代码兼容各客户需求的装置,其特征在于,所述第二导入单元包括:
识别模块,用于识别所述源代码中与所述客户patch文件中的待调整组件对标的代码段;
代码转换模块,用于采用所述源代码共享模型将所述客户patch文件中组件调整要求转换为定制化代码段,并根据所述待调整组件与组件调整要求的关联使对标后的代码段与定制化代码段相关联;
导入模块,用于采用所述源码共享模型中的patch脚本通过git的导入指令将所述定制化代码段对应的导入至对标后的代码段中,直至所有制化代码段对应导入至代码段后,形成定制化源代码。
9.根据权利要求8所述的基于Android的同份源代码兼容各客户需求的装置,其特征在于,所述识别模块包括:
标签生成子模块,用于根据所述待调整组件的预设功能性生成对应的第一代码标签;
代码定位子模块,用于根据所述第一代码标签从所述源代码中定位出与第一代码标签相同代码的第二代码标签,确定所述源代码中与第二代码标签相关的代码为代码段。
10.根据权利要求6所述的基于Android的同份源代码兼容各客户需求的装置,其特征在于,包括:
删除单元,用于将存储在上述源码共享模型中的定制化源代码删除。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010009182.4A CN111198713B (zh) | 2020-01-02 | 2020-01-02 | 基于Android的同份源代码兼容各客户需求的方法和装置 |
PCT/CN2020/120672 WO2021135497A1 (zh) | 2020-01-02 | 2020-10-13 | 基于Android的同份源代码兼容各客户需求的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010009182.4A CN111198713B (zh) | 2020-01-02 | 2020-01-02 | 基于Android的同份源代码兼容各客户需求的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111198713A CN111198713A (zh) | 2020-05-26 |
CN111198713B true CN111198713B (zh) | 2023-11-28 |
Family
ID=70746835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010009182.4A Active CN111198713B (zh) | 2020-01-02 | 2020-01-02 | 基于Android的同份源代码兼容各客户需求的方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111198713B (zh) |
WO (1) | WO2021135497A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111198713B (zh) * | 2020-01-02 | 2023-11-28 | 晶晨半导体(深圳)有限公司 | 基于Android的同份源代码兼容各客户需求的方法和装置 |
CN113282284A (zh) * | 2021-06-24 | 2021-08-20 | 成都科来网络技术有限公司 | 一种适配多定制化项目的打包方法及打包系统 |
CN117742769B (zh) * | 2024-02-19 | 2024-04-30 | 浙江金网信息产业股份有限公司 | 基于信创规则库的源码智能分析引擎 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106407113A (zh) * | 2016-09-09 | 2017-02-15 | 扬州大学 | 一种基于Stack Overflow和commit库的bug定位方法 |
CN106874195A (zh) * | 2017-01-18 | 2017-06-20 | 环球智达科技(北京)有限公司 | 一种针对android应用的bug修复和持续交付方案 |
CN109492106A (zh) * | 2018-11-13 | 2019-03-19 | 扬州大学 | 一种文本代码相结合的缺陷原因自动分类方法 |
CN109933364A (zh) * | 2019-02-25 | 2019-06-25 | 晶晨半导体(上海)股份有限公司 | 一种代码管理方法 |
CN110147452A (zh) * | 2019-05-17 | 2019-08-20 | 北京理工大学 | 一种基于层级bert神经网络的粗粒度情感分析方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8225302B2 (en) * | 2003-02-13 | 2012-07-17 | Lawrence Taylor Waugh | System and method for managing source code and acquiring metrics in software development |
KR101747424B1 (ko) * | 2016-02-04 | 2017-06-27 | 주식회사 제이티엘소프트 | 애플리케이션 설계와 구현을 통합하는 객체 지향 프로그래밍 장치, 및 방법 |
US10574692B2 (en) * | 2016-05-30 | 2020-02-25 | Christopher Nathan Tyrwhitt Drake | Mutual authentication security system with detection and mitigation of active man-in-the-middle browser attacks, phishing, and malware and other security improvements |
CN106909391A (zh) * | 2017-02-28 | 2017-06-30 | 东软集团股份有限公司 | 应用程序的定制方法及装置 |
CN108241493A (zh) * | 2018-01-09 | 2018-07-03 | 政采云有限公司 | 分布式软件系统的自动化持续集成与交付方法、装置和系统 |
CN109669692B (zh) * | 2018-12-21 | 2023-03-10 | 深圳Tcl新技术有限公司 | 源码共享方法、服务器、计算机可读存储介质及系统 |
CN111198713B (zh) * | 2020-01-02 | 2023-11-28 | 晶晨半导体(深圳)有限公司 | 基于Android的同份源代码兼容各客户需求的方法和装置 |
-
2020
- 2020-01-02 CN CN202010009182.4A patent/CN111198713B/zh active Active
- 2020-10-13 WO PCT/CN2020/120672 patent/WO2021135497A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106407113A (zh) * | 2016-09-09 | 2017-02-15 | 扬州大学 | 一种基于Stack Overflow和commit库的bug定位方法 |
CN106874195A (zh) * | 2017-01-18 | 2017-06-20 | 环球智达科技(北京)有限公司 | 一种针对android应用的bug修复和持续交付方案 |
CN109492106A (zh) * | 2018-11-13 | 2019-03-19 | 扬州大学 | 一种文本代码相结合的缺陷原因自动分类方法 |
CN109933364A (zh) * | 2019-02-25 | 2019-06-25 | 晶晨半导体(上海)股份有限公司 | 一种代码管理方法 |
CN110147452A (zh) * | 2019-05-17 | 2019-08-20 | 北京理工大学 | 一种基于层级bert神经网络的粗粒度情感分析方法 |
Non-Patent Citations (1)
Title |
---|
ACI (automated Continuous Integration) using Jenkins: Key for successful embedded Software development;Nikita Seth等;《2015 2nd International Conference on Recent Advances in Engineering & Computational Sciences (RAECS)》;第1-6页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111198713A (zh) | 2020-05-26 |
WO2021135497A1 (zh) | 2021-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111198713B (zh) | 基于Android的同份源代码兼容各客户需求的方法和装置 | |
US10579368B2 (en) | Blockchain version control systems | |
US10409583B2 (en) | Content deployment system having a content publishing engine with a filter module for selectively extracting content items provided from content sources for integration into a specific release and methods for implementing the same | |
US10447762B2 (en) | Remote localization platform | |
US20200264865A1 (en) | Content deployment system having a proxy for continuously providing selected content items to a content publishing engine for integration into a specific release and methods for implementing the same | |
US9977770B2 (en) | Conversion of a presentation to Darwin Information Typing Architecture (DITA) | |
US9740476B2 (en) | Version control for customized applications | |
US10007532B1 (en) | Data infrastructure for cross-platform cross-device API inter-connectivity | |
US11210364B1 (en) | Methods for launching content for publication | |
US11086763B2 (en) | Asynchronous consumer-driven contract testing in micro service architecture | |
US11947900B2 (en) | e-Pub creator | |
CN107025108B (zh) | 从源代码管理(scm)系统将分级数据导出到产品生命周期管理(plm)系统 | |
US20180203677A1 (en) | Method and System for Modifying Machine Instructions within Compiled Software | |
CN110020358A (zh) | 用于生成动态页面的方法和装置 | |
US20040167905A1 (en) | Content management portal and method for managing digital assets | |
CN104298500A (zh) | 在线自动生成并可以分享的电子相册App系统及方法 | |
US9762703B2 (en) | Method and apparatus for assembling data, and resource propagation system | |
AU2019222873A1 (en) | Method and system for providing content | |
US20230076276A1 (en) | Data configuration deployment framework | |
Wilson | Building Node Applications with MongoDB and Backbone: Rapid Prototyping and Scalable Deployment | |
US10915295B2 (en) | Automated generation of audio daily activity overview powered by a database | |
CN110196803B (zh) | 一种软件缺陷培训方法和系统 | |
US20230064537A1 (en) | System and method for implementing automated harvesting of scanned contracts | |
CN112306840B (zh) | 一种url测试用例生成方法及装置 | |
de Castro et al. | GIS-Publisher: From a Geographic Data Set to a Deployed Product with One Command |
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 |