CN113220337A - 一种版本构建方法、装置、计算机设备和存储介质 - Google Patents
一种版本构建方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113220337A CN113220337A CN202110341613.1A CN202110341613A CN113220337A CN 113220337 A CN113220337 A CN 113220337A CN 202110341613 A CN202110341613 A CN 202110341613A CN 113220337 A CN113220337 A CN 113220337A
- Authority
- CN
- China
- Prior art keywords
- source code
- script
- version
- target
- file
- 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
- 238000010276 construction Methods 0.000 title claims abstract description 56
- 238000013515 script Methods 0.000 claims abstract description 144
- 238000000034 method Methods 0.000 claims abstract description 56
- 238000012360 testing method Methods 0.000 claims abstract description 45
- 238000005538 encapsulation Methods 0.000 claims abstract description 22
- 238000004806 packaging method and process Methods 0.000 claims description 12
- 238000006243 chemical reaction Methods 0.000 claims description 10
- 238000012795 verification Methods 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 6
- 238000004422 calculation algorithm Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000010354 integration Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
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/71—Version control; Configuration management
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及自动程序设计领域,公开了一种版本构建方法、装置、计算机设备和存储介质。该方法包括:获取通用文件集合,所述通用文件集合中包括与目标版本匹配的至少一个配置文件;根据源码获取脚本、源码部署脚本、源码编译脚本以及通用文件集合,获取目标代码;对目标代码进行版本封装,生成目标版本,并将目标版本传输至测试系统。使用本发明的技术方案,可以实现自动化的版本构建,提高版本构建的效率。
Description
技术领域
本发明实施例涉及自动程序设计技术领域,尤其涉及一种版本构建方法、装置、计算机设备和存储介质。
背景技术
持续集成是指在应用程序更新版本时,频繁地将代码集成到主干,持续集成的过程包括本地代码的提交、版本构建以及自动化测试,持续集成可以保证在应用程序快速迭代时,快速发现和定位错误。
版本构建是指将源代码转换为可以运行的代码的过程,在现有的版本构建的过程中,需要用户人工操作的环节较多,自动化程度较低,并且,自动化脚本不具有通用性,从而使版本构建过程的效率较低。
发明内容
本发明实施例提供一种版本构建方法、装置、计算机设备和存储介质,以实现自动化的版本构建,提高了版本构建的效率。
第一方面,本发明实施例提供了一种版本构建方法,该方法包括:
获取通用文件集合,所述通用文件集合中包括与目标版本匹配的至少一个配置文件;
根据源码获取脚本、源码部署脚本、源码编译脚本以及通用文件集合,获取目标代码;
对目标代码进行版本封装,生成目标版本,并将目标版本传输至测试系统。
第二方面,本发明实施例还提供了一种版本构建装置,该装置包括:
通用文件集合获取模块,用于获取通用文件集合,所述通用文件集合中包括与目标版本匹配的至少一个配置文件;
目标代码获取模块,用于根据源码获取脚本、源码部署脚本、源码编译脚本以及通用文件集合,获取目标代码;
目标版本生成模块,用于对目标代码进行版本封装,生成目标版本,并将目标版本传输至测试系统。
第三方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明实施例中任一所述的版本构建方法。
第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本发明实施例中任一所述的版本构建方法。
本发明实施例通过在通用文件集合中部署与目标版本匹配的配置文件,通过执行源码获取脚本、源码部署脚本、源码编译脚本,调用通用文件集合,实现源码到目标代码的转换,并对目标代码进行版本封装,生成目标版本,将目标版本部署到测试系统。解决了现有的版本构建的过程中,需要用户人工操作的环节较多,自动化程度较低,并且自动化脚本不具有通用性,从而使版本构建过程的效率较低的问题,实现了自动化的版本构建,提高了版本构建的效率。
附图说明
图1是本发明实施例一中的一种版本构建方法的流程图;
图2a是本发明实施例二中的一种版本构建方法的流程图;
图2b是本发明具体适用场景一中的一种版本构建过程的示意图;
图3是本发明实施例三中的一种版本构建装置的结构示意图;
图4是本发明实施例四中的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一提供的一种版本构建方法的流程图,本实施例可适用于在持续集成的场景下进行版本构建的情况,该方法可以由版本构建装置来执行,该装置可以由软件和/或硬件来实现,并一般集成在计算机设备中。
如图1所示,本发明实施例的技术方案,具体包括如下步骤:
S110、获取通用文件集合,所述通用文件集合中包括与目标版本匹配的至少一个配置文件。
其中,通用文件集合中包括与目标版本匹配的至少一个配置文件,通过在通用文件集合中设置与目标版本匹配的配置文件,即可实现不同的系统版本进行版本构建时复用脚本的目的,也即,实现了各版本进行版本构建时的脚本统一化、配置差异化。
可选的,所述通用文件集合可以包括:实现方法类文件、通用工具类文件、系统配置文件以及命令封装类文件;所述配置文件,用于存储与源码获取脚本、源码部署脚本、源码编译脚本匹配的参数配置信息。
实现方法类文件中包括各脚本的实现方法,在各脚本执行时被引用。通用工具类文件中包括通用类工具或函数等,示例性的,通用类可以包括消息信息类、系统工具类、文件及目录类、时间日期类、代码仓库类以及版本工具类等。通用工具类文件在各脚本执行时被引用。系统配置文件中包括本地服务器和远程服务器的系统配置信息,示例性的,系统配置信息可以是远程服务器身份标识地址、远程服务器路径目录或者ini文件(Initialization File,初始化文件)中的系统配置信息。命令封装类文件中包括多种系统命令,示例性的,系统命令可以包括对文件的拷贝、剪切、删除、重命名等命令、远程文件传输指令或者打包命令等。命令封装类文件在源码获取脚本、源码部署脚本、源码编译脚本执行时被引用。配置文件用于存储在源码获取脚本、源码部署脚本、源码编译脚本执行中各阶段的参数配置信息,示例性的,参数配置信息可以包括源码部署目录、系统初始化配置目录以及操作清单文件等。
在本发明实施例中,不同的系统版本进行版本构建时,只需修改通用文件集合中与不同版本相关的配置信息,例如源码部署目录等信息,即可实现对脚本的复用,减少了不同版本进行版本构建时重构脚本的时间,提高了版本构建的效率。
S120、根据源码获取脚本、源码部署脚本、源码编译脚本以及通用文件集合,获取目标代码。
在本发明实施例中,将版本构建的过程划分为五个阶段:源码获取、源码部署、源码编译、版本封装以及版本部署。源码获取是指将源码从代码仓库中传输至目标服务器的过程,目标服务器可以是本地服务器或者远程服务器。源码部署是指将源码传输至目标服务器之后,对源码进行一系列的操作,以使源码能够进行编译的过程。源码编译是指对部署之后的源码进行编译生成目标代码的过程。版本封装是指将编译成功的目标代码封装成版本的过程,版本部署是指将封装成的版本生效部署至测试系统的过程。
在本发明实施例中,执行源码获取脚本、源码部署脚本和源码编译脚本,源码获取脚本、源码部署脚本和源码编译脚本在执行过程中调用通用文件集合,分别实现源码获取、源码部署和源码编译,将源码转换为目标代码。
S130、对目标代码进行版本封装,生成目标版本,并将目标版本传输至测试系统。
在对源码进行获取、部署和编译之后,将生成的目标代码封装成目标版本,并将目标版本部署到测试系统,以使测试系统对目标版本进行版本测试。
本实施例的技术方案,通过在通用文件集合中部署与目标版本匹配的配置文件,通过执行源码获取脚本、源码部署脚本、源码编译脚本,调用通用文件集合,实现源码到目标代码的转换,并对目标代码进行版本封装,生成目标版本,将目标版本部署到测试系统。解决了现有的版本构建的过程中,需要用户人工操作的环节较多,自动化程度较低,并且自动化脚本不具有通用性,从而使版本构建过程的效率较低的问题,实现了自动化的版本构建,提高了版本构建的效率。
实施例二
图2a是本发明实施例二提供的一种版本构建方法的流程图,本发明实施例在上述实施例的基础上,对源码获取、源码部署、源码编译、版本封装以及版本部署的过程进行了进一步的具体化,还加入了版本构建完成后,在版本发布之前进行版本发布信息核验的过程。
相应的,如图2a所示,本发明实施例的技术方案,具体包括如下步骤:
S210、获取通用文件集合,所述通用文件集合中包括与目标版本匹配的至少一个配置文件。
S220、根据与源码获取脚本匹配的参数配置信息以及源码获取脚本,获取与目标版本匹配的源码。
示例性的,源码可以存放在远程服务器的ClearCase仓库或者Git仓库中,需要通过源码获取脚本,将源码拉取至本地服务器。
与源码获取脚本匹配的参数配置信息存放在通用文件集合的系统配置文件或者配置文件中。
相应的,S220又可以包括:
S221、获取远程服务器身份标识地址和远程服务器路径目录,向与所述远程服务器身份标识地址匹配的远程服务器发送源码获取脚本和源码存储指令。
所述源码存储指令用于指示所述远程服务器执行所述源码获取脚本,并将获取的源码存储到远程服务器路径目录下。
远程服务器身份标识地址用于定位存放源码的代码仓库所在的远程服务器,远程服务器路径目录用于表示远程服务器暂存源码的地址。可以通过本地服务器执行rsycn命令的方式,将本地服务器存放的源码获取脚本同步至远程服务器。
示例性的,当源码存放在远程服务器的ClearCase仓库时,源码存储指令可以是ssh-cmd指令。本地服务器通过执行ssh-cmd指令,使远程服务器执行源码获取脚本,对源码文件进行打包,并将打包文件存放在远程服务器路径目录下,以便后续本地服务器从远程服务器路径目录处拉取打包文件。
S222、向所述远程服务器发送源码获取指令,并获取所述远程服务器发送的远程服务器路径目录下的源码。
示例性的,当源码存放在远程服务器的ClearCase仓库时,远程服务器执行源码获取脚本之后,将打包文件存放在远程服务器路径目录下,此时,源码获取指令可以是scp命令,本地服务器通过scp命令,将远程服务器路径目录下的打包文件拉取至本地。
S221-S222是源码存放在远程服务器的ClearCase仓库时的源码获取方案,对于存放在Git仓库的源码,可以通过本地服务器端执行Git pull命令的方式,拉取远程服务器的源码至本地服务器,本实施例对此不进行限制。
可选的,源码的获取方式可以包括全量获取或者增量获取,如果获取方式为增量获取,可以根据ClearCase仓库的活动号,或者Git仓库的版本号或文件清单进行获取。
可选的,还可以在远程同步的源码获取脚本设置定时任务,每隔预设时间间隔清理远程服务器路径目录下的打包文件,以避免出现远程服务器中打包文件的存储空间不足的状况。
S230、根据与源码部署脚本匹配的参数配置信息,执行源码部署脚本。
源码部署的作用主要是将获取的源码调整为可以进行编译的形式。
相应的,S230又可以包括:
S231、获取源码部署目录以及操作清单文件。
源码部署目录用于表示对源码的打包文件进行解压后,源码的存放地址。操作清单文件中记录有对源码对应的文件、目录调整等操作。示例性的,操作清单文件中可以记录源码编译所需要的依赖文件的准备操作,对源码部署目录的调整操作等,本实施例对此不进行限制。
S232、执行源码比对脚本,进行源码比对,并获取差异代码提供给用户。
在源码部署期间,还会进行源码比对,通过执行源码比对脚本,获取源码中的差异代码提供给用户,以使用户对差异代码进行确认,从而保证源码的正确性。
S233、执行源码部署脚本,根据源码部署目录对源码进行对应存储,并执行操作清单文件对应的各项操作。
在本发明实施例中,执行源码部署脚本,对源码对应的打包文件进行解压后,将源码存储到源码部署目录下,并对操作清单文件中记录的各项操作进行执行。
S240、执行源码编译脚本,调用编译工具进行源码编译,生成目标代码。
在本发明实施例中,在执行源码编译脚本的过程中,调用自动化编译工具,对源码进行编译,获得目标代码。示例性的,自动化编译工具可以是Apache Maven或者Apache Ant等,本实施例对此不进行限制。
S250、获取编译日志信息,执行日志核验脚本,获取编译日志信息中的报错信息和/或目标文本信息。
对于源码编译过程中产生的编译日志信息,可以通过日志核验脚本进行日志核验,以判断日志中的报错信息,或者筛选特定的目标文本信息。
S260、对目标代码进行版本封装,生成目标版本。
版本封装阶段是将编码编译过程中通过自动化编译工具编译成功的目标代码,封装为对应的目标版本。
相应的,S260又可以包括:
S261、判断测试系统是否为虚拟化测试系统,如果是,则执行S262,否则执行S263。
虚拟化测试系统也即VT(Virtualization Technology,虚拟化技术)环境,如果测试系统为VT环境,则需要执行格式转换脚本,生成linuxTgz包以及相对应的cfg和MD5(Message-Digest Algorithm,消息摘要算法)文件。
S262、执行格式转换脚本,对目标代码进行版本封装,生成与所述虚拟化测试系统匹配的目标版本。
S263、对目标代码进行版本封装,生成目标版本。
在本发明实施例中,目标版本可以是java jar包、java war包或者linux Tgz包的形式。
S270、将目标版本传输至测试系统。
版本部署阶段,是将版本封装后的构建产物,生效部署至测试系统。
相应的,S270又可以包括:
S271、通过执行远程文件传输指令,将目标版本传输至测试系统。
远程文件传输指令可以是scp命令,通过scp命令将目标版本传输至测试系统。
S272、对测试系统进行远程连接。
将目标版本传输至测试系统之后,可以通过ssh-cmd指令对测试系统进行生效操作。
S280、通过版本核验工具,对目标版本进行版本发布信息核验。
所述版本发布信息包括以下至少一项:版本发布路径、版本中的各文件名、各文件的文件大小以及消息摘要算法值。
在本发明实施例中,在版本构建之后,在版本发布的过程中,需要对版本发布环节关注的各项版本发布信息进行核验。
进行版本发布信息核验可以及时发现目标版本的信息在传输环节发生的错误,通过版本核验工具进行版本发布信息核验,减少了人工核验的工作量,提高了信息核验效率。
具体的,版本核验工具可以为exe可执行文件的形式,可以在windows系统中直接执行。
本实施例的技术方案,通过在通用文件集合中部署与目标版本匹配的配置文件,通过执行源码获取脚本获取源码,通过执行源码部署脚本进行源码部署,并在源码部署期间进行源码比对,通过执行源码编译脚本进行源码编译,并对生成的编译日志信息进行日志核验,实现了源码到目标代码的转换,并对目标代码进行版本封装,生成目标版本,将目标版本部署到测试系统。解决了现有的版本构建的过程中,需要用户人工操作的环节较多,自动化程度较低,并且自动化脚本不具有通用性,从而使版本构建过程的效率较低的问题,实现了自动化的版本构建,提高了版本构建的效率。
具体适用场景一
图2b是本发明具体适用场景一中的一种版本构建过程的示意图,如图2b所示,版本构建过程分为源码获取、源码部署、源码编译、版本封装和版本部署五个过程。通过统一且便于重构的模块化脚本实现整个版本构建过程,根据脚本的执行地点,又可以划分为本地服务器端和远程服务器端。
本地服务器端部署有脚本执行时依赖的通用函数文件,通用函数文件也即上述实施例中的通用文件集合,通用函数文件包括moduleVersionBuildClassRelease.py,也即上述实施例中的实现方法类文件。commonToolsV2aRelease.py也即上述实施例中的通用工具类文件,localCommonSettings.py也即上述实施例中的系统配置文件,listDoRelease.py也即上述实施例中的命令封装类文件,通用函数文件中还包括各种配置文件。
本地服务器端还存储有src_init.sh、cc_src.sh、getchgset.sh这三个脚本,也即上述实施例中的源码获取脚本。当源码存储在ClearCase仓库中时,将上述三个脚本通过rsycn命令远程同步至远程服务器端,本地服务器通过执行ssh-cmd指令,使远程服务器执行上述三个源码获取脚本,实现对源码的全量或者增量获取,并生成源码的打包文件,存储在远程服务器配置文件中的远程服务器路径目录下,以便后续本地服务器通过scp命令,从远程服务器路径目录处拉取打包文件。当源码存储在Git仓库中时,通过Git pull命令,在Git仓库中拉取源码。
获取源码之后,通过srcDeploy.py,也即上述实施例中的源码部署脚本,将打包文件进行解压,存放在源码部署目录下,形成本地源码包。通过git diff命令拉取被比对的源码包,并通过执行diffGit.py生成本地源码包和被比对源码包之间的差异代码,以html(Hyper Text Markup Language,超级文本标记语言)文本的格式提供给用户,以供用户确认代码差异。
源码编译及版本封装阶段通过执行srcCompilePackage.py,也即上述实施例中的源码编译脚本来实现,源码编译脚本在执行过程中,调用Apache Maven或者Apache Ant等自动化编译工具,封装成构建产物,一般是Java jar包、Java war包或者Linux Tgz包的形式。在使用Apache Maven进行源码编译时涉及到依赖构建下载,需要从Nexus Maven仓库中下载依赖项。
在源码编译阶段,通过versionLogCheck.py,也即上述实施例中的日志核验脚本,对编译日志信息进行核验。
如果测试系统为VT系统,通过versionCfgMd5.py也即上述实施例中的格式转换脚本,将目标版本转换为Linux Tgz包及相对应的cfg和md5文件。
将目标版本传输至测试系统之后,通过ssh-cmd指令对测试系统进行生效操作。
实施例三
图3是本发明实施例三中的一种版本构建装置的结构示意图,该装置包括:通用文件集合获取模块310、目标代码获取模块320以及目标版本生成模块330。其中:
通用文件集合获取模块310,用于获取通用文件集合,所述通用文件集合中包括与目标版本匹配的至少一个配置文件;
目标代码获取模块320,用于根据源码获取脚本、源码部署脚本、源码编译脚本以及通用文件集合,获取目标代码;
目标版本生成模块330,用于对目标代码进行版本封装,生成目标版本,并将目标版本传输至测试系统。
本实施例的技术方案,通过在通用文件集合中部署与目标版本匹配的配置文件,通过执行源码获取脚本、源码部署脚本、源码编译脚本,调用通用文件集合,实现源码到目标代码的转换,并对目标代码进行版本封装,生成目标版本,将目标版本部署到测试系统。解决了现有的版本构建的过程中,需要用户人工操作的环节较多,自动化程度较低,并且自动化脚本不具有通用性,从而使版本构建过程的效率较低的问题,实现了自动化的版本构建,提高了版本构建的效率。
在上述实施例的基础上,所述通用文件集合还包括:
实现方法类文件、通用工具类文件、系统配置文件以及命令封装类文件;
所述配置文件,用于存储与源码获取脚本、源码部署脚本、源码编译脚本匹配的参数配置信息。
在上述实施例的基础上,所述目标代码获取模块320,包括:
源码获取单元,用于根据与源码获取脚本匹配的参数配置信息以及源码获取脚本,获取与目标版本匹配的源码;
源码部署单元,用于根据与源码部署脚本匹配的参数配置信息,执行源码部署脚本;
源码编译单元,用于执行源码编译脚本,调用编译工具进行源码编译,生成目标代码。
在上述实施例的基础上,所述源码获取单元,具体用于:
获取远程服务器身份标识地址和远程服务器路径目录,向与所述远程服务器身份标识地址匹配的远程服务器发送源码获取脚本和源码存储指令;
所述源码存储指令用于指示所述远程服务器执行所述源码获取脚本,并将获取的源码存储到远程服务器路径目录下;
向所述远程服务器发送源码获取指令,并获取所述远程服务器发送的远程服务器路径目录下的源码。
在上述实施例的基础上,所述源码部署单元,具体用于:
获取源码部署目录以及操作清单文件;
执行源码部署脚本,根据源码部署目录对源码进行对应存储,并执行操作清单文件对应的各项操作。
在上述实施例的基础上,所述装置,还包括:
源码比对模块,用于执行源码比对脚本,进行源码比对,并获取差异代码提供给用户。
在上述实施例的基础上,所述装置,还包括:
日志核验模块,用于获取编译日志信息,执行日志核验脚本,获取编译日志信息中的报错信息和/或目标文本信息。
在上述实施例的基础上,所述目标版本生成模块330,包括:
格式转换单元,用于如果测试系统为虚拟化测试系统,则执行格式转换脚本,对目标代码进行版本封装,生成与所述虚拟化测试系统匹配的目标版本。
在上述实施例的基础上,所述目标版本生成模块330,包括:
目标版本传输单元,用于通过执行远程文件传输指令,将目标版本传输至测试系统;
远程连接单元,用于对测试系统进行远程连接。
在上述实施例的基础上,所述装置,还包括:
版本发布信息核验模块,用于通过版本核验工具,对目标版本进行版本发布信息核验;
所述版本发布信息包括以下至少一项:版本发布路径、版本中的各文件名、各文件的文件大小以及消息摘要算法值。
本发明实施例所提供的版本构建装置可执行本发明任意实施例所提供的版本构建方法,具备执行方法相应的功能模块和有益效果。
实施例四
图4为本发明实施例四提供的一种计算机设备的结构示意图,如图4所示,该计算机设备包括处理器70、存储器71、输入装置72和输出装置73;计算机设备中处理器70的数量可以是一个或多个,图4中以一个处理器70为例;计算机设备中的处理器70、存储器71、输入装置72和输出装置73可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储器71作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的版本构建方法对应的模块(例如,版本构建装置中的通用文件集合获取模块310、目标代码获取模块320以及目标版本生成模块330)。处理器70通过运行存储在存储器71中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的版本构建方法。该方法包括:
获取通用文件集合,所述通用文件集合中包括与目标版本匹配的至少一个配置文件;
根据源码获取脚本、源码部署脚本、源码编译脚本以及通用文件集合,获取目标代码;
对目标代码进行版本封装,生成目标版本,并将目标版本传输至测试系统。
存储器71可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器71可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器71可进一步包括相对于处理器70远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置72可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置73可包括显示屏等显示设备。
实施例五
本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种版本构建方法,该方法包括:
获取通用文件集合,所述通用文件集合中包括与目标版本匹配的至少一个配置文件;
根据源码获取脚本、源码部署脚本、源码编译脚本以及通用文件集合,获取目标代码;
对目标代码进行版本封装,生成目标版本,并将目标版本传输至测试系统。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的版本构建方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述版本构建装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (15)
1.一种版本构建方法,其特征在于,包括:
获取通用文件集合,所述通用文件集合中包括与目标版本匹配的至少一个配置文件;
根据源码获取脚本、源码部署脚本、源码编译脚本以及通用文件集合,获取目标代码;
对目标代码进行版本封装,生成目标版本,并将目标版本传输至测试系统。
2.根据权利要求1所述的方法,其特征在于,所述通用文件集合还包括:
实现方法类文件、通用工具类文件、系统配置文件以及命令封装类文件;
所述配置文件,用于存储与源码获取脚本、源码部署脚本、源码编译脚本匹配的参数配置信息。
3.根据权利要求2所述的方法,其特征在于,根据源码获取脚本、源码部署脚本、源码编译脚本以及通用文件集合,获取目标代码,包括:
根据与源码获取脚本匹配的参数配置信息以及源码获取脚本,获取与目标版本匹配的源码;
根据与源码部署脚本匹配的参数配置信息,执行源码部署脚本;
执行源码编译脚本,调用编译工具进行源码编译,生成目标代码。
4.根据权利要求3所述的方法,其特征在于,根据与源码获取脚本匹配的参数配置信息以及源码获取脚本,获取与目标版本匹配的源码,包括:
获取远程服务器身份标识地址和远程服务器路径目录,向与所述远程服务器身份标识地址匹配的远程服务器发送源码获取脚本和源码存储指令;
所述源码存储指令用于指示所述远程服务器执行所述源码获取脚本,并将获取的源码存储到远程服务器路径目录下;
向所述远程服务器发送源码获取指令,并获取所述远程服务器发送的远程服务器路径目录下的源码。
5.根据权利要求3所述的方法,其特征在于,根据与源码部署脚本匹配的参数配置信息,执行源码部署脚本,包括:
获取源码部署目录以及操作清单文件;
执行源码部署脚本,根据源码部署目录对源码进行对应存储,并执行操作清单文件对应的各项操作。
6.根据权利要求5所述的方法,其特征在于,在执行源码部署脚本之前,还包括:
执行源码比对脚本,进行源码比对,并获取差异代码提供给用户。
7.根据权利要求3所述的方法,其特征在于,在调用编译工具进行源码编译之后,还包括:
获取编译日志信息,执行日志核验脚本,获取编译日志信息中的报错信息和/或目标文本信息。
8.根据权利要求1所述的方法,其特征在于,对目标代码进行版本封装,生成目标版本,包括:
如果测试系统为虚拟化测试系统,则执行格式转换脚本,对目标代码进行版本封装,生成与所述虚拟化测试系统匹配的目标版本。
9.根据权利要求1所述的方法,其特征在于,将目标版本传输至测试系统,包括:
通过执行远程文件传输指令,将目标版本传输至测试系统;
对测试系统进行远程连接。
10.根据权利要求1所述的方法,其特征在于,在将目标版本传输至测试系统之后,还包括:
通过版本核验工具,对目标版本进行版本发布信息核验;
所述版本发布信息包括以下至少一项:版本发布路径、版本中的各文件名、各文件的文件大小以及消息摘要算法值。
11.一种版本构建装置,其特征在于,包括:
通用文件集合获取模块,用于获取通用文件集合,所述通用文件集合中包括与目标版本匹配的至少一个配置文件;
目标代码获取模块,用于根据源码获取脚本、源码部署脚本、源码编译脚本以及通用文件集合,获取目标代码;
目标版本生成模块,用于对目标代码进行版本封装,生成目标版本,并将目标版本传输至测试系统。
12.根据权利要求11所述的装置,其特征在于,所述通用文件集合还包括:
实现方法类文件、通用工具类文件、系统配置文件以及命令封装类文件;
所述配置文件,用于存储与源码获取脚本、源码部署脚本、源码编译脚本匹配的参数配置信息。
13.根据权利要求12所述的装置,其特征在于,所述目标代码获取模块,包括:
源码获取单元,用于根据与源码获取脚本匹配的参数配置信息以及源码获取脚本,获取与目标版本匹配的源码;
源码部署单元,用于根据与源码部署脚本匹配的参数配置信息,执行源码部署脚本;
源码编译单元,用于执行源码编译脚本,调用编译工具进行源码编译,生成目标代码。
14.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-10中任一所述的版本构建方法。
15.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-10中任一所述的版本构建方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110341613.1A CN113220337A (zh) | 2021-03-30 | 2021-03-30 | 一种版本构建方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110341613.1A CN113220337A (zh) | 2021-03-30 | 2021-03-30 | 一种版本构建方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113220337A true CN113220337A (zh) | 2021-08-06 |
Family
ID=77086034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110341613.1A Pending CN113220337A (zh) | 2021-03-30 | 2021-03-30 | 一种版本构建方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113220337A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113971041A (zh) * | 2021-10-28 | 2022-01-25 | 中国银行股份有限公司 | 跨版本控制系统的版本同步方法及装置 |
CN115373727A (zh) * | 2022-08-08 | 2022-11-22 | 深圳安巽科技有限公司 | Http应用及后台脚本的部署方法、系统及存储介质 |
CN116009851A (zh) * | 2022-12-20 | 2023-04-25 | 浙江凌骁能源科技有限公司 | 目标模型集成与发布方法、装置、计算机设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103902456A (zh) * | 2014-04-09 | 2014-07-02 | 中国工商银行股份有限公司 | 测试脚本处理装置、系统及方法 |
CN109426516A (zh) * | 2017-06-21 | 2019-03-05 | 北京信威通信技术股份有限公司 | 软件版本管理方法及装置 |
CN111752595A (zh) * | 2020-06-29 | 2020-10-09 | 深圳壹账通智能科技有限公司 | 文件打包方法、装置、设备及存储介质 |
CN112506793A (zh) * | 2020-12-18 | 2021-03-16 | 航天信息股份有限公司 | 嵌入式软件单元测试方法、系统、可读介质及电子设备 |
-
2021
- 2021-03-30 CN CN202110341613.1A patent/CN113220337A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103902456A (zh) * | 2014-04-09 | 2014-07-02 | 中国工商银行股份有限公司 | 测试脚本处理装置、系统及方法 |
CN109426516A (zh) * | 2017-06-21 | 2019-03-05 | 北京信威通信技术股份有限公司 | 软件版本管理方法及装置 |
CN111752595A (zh) * | 2020-06-29 | 2020-10-09 | 深圳壹账通智能科技有限公司 | 文件打包方法、装置、设备及存储介质 |
CN112506793A (zh) * | 2020-12-18 | 2021-03-16 | 航天信息股份有限公司 | 嵌入式软件单元测试方法、系统、可读介质及电子设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113971041A (zh) * | 2021-10-28 | 2022-01-25 | 中国银行股份有限公司 | 跨版本控制系统的版本同步方法及装置 |
CN115373727A (zh) * | 2022-08-08 | 2022-11-22 | 深圳安巽科技有限公司 | Http应用及后台脚本的部署方法、系统及存储介质 |
CN116009851A (zh) * | 2022-12-20 | 2023-04-25 | 浙江凌骁能源科技有限公司 | 目标模型集成与发布方法、装置、计算机设备和存储介质 |
CN116009851B (zh) * | 2022-12-20 | 2024-05-07 | 浙江凌骁能源科技有限公司 | 目标模型集成与发布方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11599348B2 (en) | Container image building using shared resources | |
CN113220337A (zh) | 一种版本构建方法、装置、计算机设备和存储介质 | |
US8612947B2 (en) | System and method for remotely compiling multi-platform native applications for mobile devices | |
CN108196915B (zh) | 基于应用容器引擎的代码处理方法、设备及存储介质 | |
CN112685035B (zh) | 项目开发方法及装置、计算机可读存储介质、电子设备 | |
CN109739523B (zh) | 应用程序打包方法、装置、存储介质及终端 | |
US20180322037A1 (en) | Impersonation in test automation | |
CN109766099A (zh) | 前端源码编译方法、装置、存储介质及计算机设备 | |
CN108965375B (zh) | 服务调用代理控制系统、方法、服务器及可读存储介质 | |
CN110795139A (zh) | 客户端批量打包方法、装置、计算机设备和存储介质 | |
CN111651169B (zh) | 基于web容器的区块链智能合约运行方法及系统 | |
CN103595770A (zh) | Sdk实现文件下载的方法与装置 | |
CN112564989A (zh) | 应用部署方法和装置 | |
CN111026439A (zh) | 应用程序的兼容方法、装置、设备及计算机存储介质 | |
CN116069341A (zh) | 一种应用程序的自动化部署方法、设备及存储介质 | |
CN116166907B (zh) | 一种使用WebAssembly和服务页面编译技术开发Web应用的方法及装置 | |
CN115914055A (zh) | 分布式网络测试方法、装置、介质及设备 | |
CN113568623B (zh) | 一种部署应用的方法、装置和电子设备 | |
CN114003257A (zh) | 一种升级方法及装置 | |
CN113110872B (zh) | 一种Android自动化配置构建平台及操作方法 | |
CN115168175A (zh) | 程序错误解决方法、装置、电子设备和存储介质 | |
CN111273940B (zh) | 将程序文件上传至代码仓库的方法及装置 | |
CN111708544B (zh) | 一种基于Python开发的跨平台编译终端程序的系统及方法 | |
Rakshitha et al. | Software Configuration Using Jenkins and Yocto Project | |
CN113504913B (zh) | 一种Adobe Flex代码自动转换方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210806 |