CN110688112A - 多项目共线开发代码的自动入库的方法及*** - Google Patents
多项目共线开发代码的自动入库的方法及*** Download PDFInfo
- Publication number
- CN110688112A CN110688112A CN201910910897.4A CN201910910897A CN110688112A CN 110688112 A CN110688112 A CN 110688112A CN 201910910897 A CN201910910897 A CN 201910910897A CN 110688112 A CN110688112 A CN 110688112A
- Authority
- CN
- China
- Prior art keywords
- code
- project
- compiling
- development
- module
- 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
- 238000011161 development Methods 0.000 title claims abstract description 62
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000003860 storage Methods 0.000 title claims description 31
- 238000012827 research and development Methods 0.000 claims abstract description 31
- 230000010354 integration Effects 0.000 claims abstract description 30
- 230000007246 mechanism Effects 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 9
- 230000001502 supplementing effect Effects 0.000 claims description 9
- 230000002085 persistent effect Effects 0.000 claims 2
- 238000012423 maintenance Methods 0.000 abstract description 4
- 238000012795 verification Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 4
- 238000007689 inspection Methods 0.000 description 4
- 238000012552 review Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000012858 packaging process Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000012942 design verification Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000000047 product Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 239000013589 supplement Substances 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/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- 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/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种多项目共线开发代码的自动入库的方法及***,其中方法包括以下步骤:获取待提交的代码;采用持续集成工具实现多个项目同时对所述代码进行编译,汇总得到编译结果;根据所述编译结果判断是否能够入库,若是,则将所述代码存入代码库。本发明采用持续集成工具实现了多项目共线开发时代码的同时编译,使得入库的代码能够满足每个项目的入库标准。实现了多项目共线开发情况下代码的高质量合入,杜绝部分项目编译报错的问题。本发明针对多项目共线开发中,高效高质量软件迭代的需求,最大程度复用代码,减少维护工作量,同时达到节省服务器资源和节省研发人力,提高研发工作效率,最大量节省成本的目的。
Description
技术领域
本发明涉及计算机软件开发编程技术领域,特别涉及一种多项目共线开发代码的自动入库的方法及***。
背景技术
随着手机等移动终端产品的推陈出新,对应的程序代码也需要不断的快速更新迭代,不可避免的存在多个相关产品各自对应的项目同时开发的情况,也就是多项目共线开发。例如手机A、手机B和平板C分别属于项目a、b和c,a、b、c三个项目开发时间节点会有重叠及交叉,在项目开发过程中会共用一些代码,这些代码通常存放在共同的代码库中。对于多项目共线开发的代码要求入库质量要高,且要满足软件迭代高效率的需求,尽量减少代码维护的工作量。针对多项目共线开发的代码入库方案,对于提交的一笔代码,现有技术中仅支持单项目验证通过后入库的实现方式,无法保证入库时满足所有共线开发的其它项目入库的验证要求,这就导致其它项目在事后才发现存在编译问题,影响项目开发进度,且导致代码维护工作量增大,无法满足高效高质量软件迭代的需求。
发明内容
本发明要解决的技术问题是为了克服现有技术中对于多项目共线开发代码入库时仅支持单项目验证通过后入库,无法保证入库时满足所有共线开发的其它项目入库的验证要求,导致其它项目在事后才发现存在问题,影响项目开发进度,无法满足高效高质量软件迭代的需求的缺陷,提供一种能够满足多项目共线开发时代码的高质量自动入库,杜绝部分项目编译报错的问题,从而满足高效高质量软件迭代的需求的多项目共线开发代码的自动入库的方法及***。
本发明是通过下述技术方案来解决上述技术问题:
本发明第一方面提供了一种多项目共线开发代码的自动入库的方法,包括以下步骤:
获取待提交的代码;
采用持续集成工具实现多个项目同时对所述代码进行编译,汇总得到编译结果;
根据所述编译结果判断是否能够入库,若是,则将所述代码存入代码库。
本方案中,采用持续集成工具实现了多项目共线开发时代码的同时编译,使得入库的代码能够满足每个项目的入库标准。解决了多项目共线开发代码入库时仅支持单项目验证通过后入库,无法保证入库时满足所有共线开发的其它项目入库的验证要求,导致其它项目在事后才发现存在编译问题,影响项目开发进度,无法满足高效高质量软件迭代的需求的问题。
较佳地,在所述获取待提交的代码的步骤之前还包括以下步骤:
将每个所述项目切分成若干研发阶段,为每个所述项目的每个所述研发阶段设定对应的入库规则;
在所述获取待提交的代码的步骤与所述采用持续集成工具实现多个项目同时对所述代码进行编译的步骤之间还包括以下步骤:
根据每个所述项目所处的所述研发阶段所对应的所述入库规则,自动对所述代码补齐需要的信息。
本方案中,根据各个项目不同的研发阶段,自动监测入库规则,结合项目需求,提前设定每个阶段的入库规则。具体可以通过算法以及提前配置导入,当项目进行到某个阶段的时候,自动匹配实施该阶段的规则。比如当在较早期的阶段时,提交频繁并且量多,要求快速迭代,采用低级入库条件,可以直接提交就自动加分。在后期阶段时,要求稳定并且慎重入库,那么对入库规则进行高级严控,必须达到既定条件才算通过。
较佳地,所述对所述代码进行编译的步骤中的编译为增量迭代编译。
本方案中,采用增量迭代编译的方式,具体可以通过代码审查软件的对比机制和打分机制,确认需要迭代的内容。只对符合特定分数的部分进行编译检查迭代,去除无用的全量编译及压缩打包流程,缩短编译时间。
较佳地,所述自动入库的方法还包括以下步骤:
将所述编译结果发送至预设的接收端。
本方案中,将编译结果及时通知预设的接收端,也即对应到接收人,保证信息传递的及时性,具体发送方式可以借助于邮件***或者手机短信等。
较佳地,所述持续集成工具为Jenkins;
所述采用持续集成工具实现多个项目同时对所述代码进行编译的步骤为:采用Jenkins在声明式pipeline(导管)机制中嵌入自动化并行运行方法实现多个项目同时对所述代码进行编译;
在所述获取待提交的代码的步骤之前还包括以下步骤:
使用Yaml(不是一种标记语言的外语缩写)配置文件获取参数的功能统一修改配置并在所述Jenkins挂载服务器定时运行任务。
本方案中,采用Jenkins实现多项目并行编译,同时通过Yaml配置文件完成对方法的配置,方便扩展复用。
较佳地,在所述获取待提交的代码的步骤与所述根据每个项目所处的所述研发阶段对应的所述入库规则,自动对所述代码补齐需要的信息的步骤之间还包括以下步骤:对所述代码进行预检查,以保证所述代码的统一性以及信息的正确性;
在所述根据每个项目所处的所述研发阶段对应的所述入库规则,自动对所述代码补齐需要的信息的步骤与所述采用持续集成工具实现多个项目同时对所述代码进行编译的步骤之间还包括以下步骤:
对所述代码进行关联性检查,以确定所述代码与已经提交的代码在内容上是否有冲突。
较佳地,所述根据所述编译结果判断是否能够入库,若是,则将所述代码存入代码库的步骤包括:
根据所述编译结果判断是否能够入库,若是,则判断编译过程中代码是否有更新,若没有更新,则将所述代码存入所述代码库。
较佳地,所述自动入库的方法还包括以下步骤:
将每个步骤操作的记录和/或结果存入数据库。
本方案中,结合数据库,对每个操作都进行数据记录,以便后期进一步追踪及处理,例如定期输出阶段性数据汇总结果,直观呈现工作数据、服务器使用数据、效率提升数据,提供优化方向等。
本发明第二方面提供了一种多项目共线开发代码的自动入库的***,包括:
获取模块,用于获取待提交的代码;
编译模块,采用持续集成工具实现多个项目同时对所述代码进行编译,汇总得到编译结果;
入库处理模块,用于根据所述编译结果判断是否能够入库,若是,则将所述代码存入代码库。
较佳地,所述***还包括:
规则设定模块,用于将每个所述项目切分成若干研发阶段,为每个所述项目的每个所述研发阶段设定对应的入库规则;
信息补齐模块,用于在所述获取模块执行完毕之后并且在调用所述编译模块之前根据每个所述项目所处的所述研发阶段所对应的所述入库规则,自动对所述代码补齐需要的信息。
较佳地,所述编译模块中的编译为增量迭代编译。
较佳地,所述***还包括:
发送模块,用于将所述编译结果发送至预设的接收端。
较佳地,所述持续集成工具为Jenkins;
所述编译模块采用Jenkins在声明式pipeline机制中嵌入自动化并行运行方法实现多个项目同时对所述代码进行编译;
所述***还包括;
配置模块,用于使用Yaml配置文件获取参数的功能统一修改配置并在所述Jenkins挂载服务器定时运行任务。
较佳地,所述***还包括:
预检查模块,用于在所述获取模块执行完毕之后并且在调用所述信息补齐模块之前对所述代码进行预检查,以保证所述代码的统一性以及信息的正确性;
关联性检查模块,用于在所述信息补齐模块执行完毕之后并且在调用所述编译模块之前对所述代码进行关联性检查,以确定所述代码与已经提交的代码在内容上是否有冲突。
较佳地,所述入库处理模块用于根据所述编译结果判断是否能够入库,若是,则判断编译过程中代码是否有更新,若没有更新,则将所述代码存入所述代码库。
较佳地,所述***还包括:
日志存储模块,用于将每个模块执行的记录和/或结果存入数据库。
本发明的积极进步效果在于:
本发明提供的多项目共线开发代码的自动入库的方法及***,采用持续集成工具实现了多项目共线开发时代码的同时编译,使得入库的代码能够满足每个项目的入库标准。实现了多项目共线开发情况下代码的高质量合入,杜绝部分项目编译报错的问题。进一步实现了多项目处于不同研发阶段的情况下,自动区分入库规则,自动补齐信息的功能。相比现有的入库流程,通过将编译结果及时通知预设的接收端,增加了实时信息传递功能,质量和效率提升70%以上。本发明针对多项目共线开发中,高效高质量软件迭代的需求,最大程度复用代码,减少维护工作量,同时达到节省服务器资源和节省研发人力,提高研发工作效率,最大量节省成本的目的。
附图说明
图1为本发明实施例1提供的一种多项目共线开发代码的自动入库的方法的流程图。
图2为本发明实施例2提供的一种多项目共线开发代码的自动入库的方法的流程图。
图3为本发明实施例3提供的一种多项目共线开发代码的自动入库的***的模块示意图。
图4为本发明实施例4提供的一种多项目共线开发代码的自动入库的***的模块示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
如图1所示,本实施例提供了一种多项目共线开发代码的自动入库的方法,包括以下步骤:
步骤S101、获取待提交的代码。
步骤S102、采用持续集成工具实现多个项目同时对待提交的代码进行编译,汇总得到编译结果。
步骤S103、根据编译结果判断是否能够入库,若是,则执行步骤S104,若否,则返回开始阶段,等待新的待提交的代码。
步骤S104、将代码存入代库。
本实施例中采用持续集成工具实现了多项目共线开发时代码的同时编译,使得入库的代码能够满足每个项目的入库标准。解决了多项目共线开发代码入库时仅支持单项目验证通过后入库,无法保证入库时满足所有共线开发的其它项目入库的验证要求,导致其它项目在事后才发现存在编译问题,影响项目开发进度,无法满足高效高质量软件迭代的需求的问题。
实施例2
如图2所示,本实施例提供了一种多项目共线开发代码的自动入库的方法,包括以下步骤:
步骤S201、将每个项目切分成若干研发阶段,为每个项目的每个研发阶段设定对应的入库规则。
也就是,根据不同项目的研发阶段差异,增加项目研发阶段节点,本实施例中采用将每个项目切分成依次的四个研发阶段的方式,分别为EVT(工程验证与测试阶段)、DVT(Design Verification Test,设计验证测试阶段)、DEV(研发阶段)及MP(量产阶段),共四个判断点,通过阶段节点,匹配不同的入库规则。
本实施例中,根据各个项目不同的研发阶段,自动监测review规则,即入库规则。结合项目需求,提前设定每个阶段的review规则。具体可以通过算法以及提前配置导入,当项目进行到某个阶段的时候,自动匹配实施该阶段的规则。比如当在较早期的阶段时,如EVT阶段,提交频繁并且量多,要求快速迭代,采用低级入库条件,可以直接提交就自动加分。在后期阶段如MP阶段时,要求稳定并且慎重入库,那么对review规则进行高级严控,必须达到既定条件才算通过。
步骤S202、使用Yaml配置文件获取参数的功能统一修改配置,并在持续集成工具Jenkins挂载服务器定时运行任务。
步骤S203、获取待提交的代码。
步骤S204、对待提交的代码进行预检查,以保证代码的统一性以及信息的正确性。
本实施例中,通过预检查实现了事前检查机制,也就是对每一笔待提交的代码,从comment(注释)内容到代码格式,都做一个检查,保证代码的统一性以及信息的正确性。
步骤S205、根据每个项目所处的研发阶段所对应的入库规则,自动对待提交的代码补齐需要的信息。
其中,自动补齐是指的在不同阶段要求不同的信息,所以***可以通过项目阶段配置来自动补充信息,保证所有提交信息统一。
步骤S206、对待提交的代码进行关联性检查,以确定待提交的代码与已经提交的代码在内容上是否有冲突,没有冲突则继续执行后续步骤。
其中,关联性检查除了检查是否和前面的提交在内容上有冲突外,还可以进一步检查当前是否处于最新节点,以及与之有关联的代码的入库情况。
步骤S207、采用Jenkins在声明式pipeline机制中嵌入自动化并行运行方法实现多个项目同时对待提交的代码进行编译,汇总得到编译结果;其中,编译采用增量迭代编译的方式。
本实施例中,使用多项目并行编译机制,具体采用Jenkins持续集成工具实现多项目并行编译,在声明式pipeline机制中,嵌入自动化并行运行方法,可以多项目同时进行编译,并行监控,汇总编译结果。同时使用Yaml配置文件获取参数的功能,统一修改配置并在Jenkins挂载服务器定时运行任务,方便扩展复用。
本实施例中,采用增量迭代编译的方式,具体可以通过代码审查软件Gerrit的对比机制和打分机制,确认需要迭代的内容。只对符合特定分数的部分进行编译检查迭代,去除无用的全量编译及压缩打包流程,缩短编译时间。需要迭代的内容是存放在一个中转服务器上的,在进行迭代流程的时候,首先需要先把迭代内容从中转服务器下载到编译服务器上。
步骤S208、将编译结果发送至预设的接收端。
本实施例中,将编译结果及时通知预设的接收端,也即对应到接收人,保证信息传递的及时性,具体发送方式可以借助于邮件***或者手机短信等。
步骤S209、根据编译结果判断是否能够入库,若是,则执行步骤S210;若否,则返回开始阶段,等待新的待提交的代码。
步骤S210、判断编译过程中代码是否有更新,若否,则执行步骤S211;若是,则返回开始阶段,等待新的待提交的代码。
步骤S211、将代码存入代码库。
本实施例中,在代码入库前还可以进行合入预检查,合入指的就是把迭代内容最终合并放入代码存储服务器。由于在进行迭代的过程中,关联提交或者迭代内容有可能被更新,导致编译的迭代内容已经不是最终需要入库的内容。所以需要在合入之前再检查一遍,以防由于变更原因引起迭代失败或者错误内容迭代。
本实施例还包括将每个步骤操作的记录和/或结果存入数据库。结合数据库,对每个操作都进行数据记录,以便后期进一步追踪及处理,例如定期输出阶段性数据汇总结果,直观呈现工作数据、服务器使用数据、效率提升数据,提供优化方向等。
本实施例提供的多项目共线开发代码的自动入库的方法,应用于多项目情况下,对代码进行预检查。每笔提交同时进行多项目增量编译、入库;实现多项目代码完全检查、迭代和增量编译方案。采用持续集成工具实现了多项目共线开发时代码的同时编译,使得入库的代码能够满足每个项目的入库标准。解决了多项目共线开发代码入库时仅支持单项目验证通过后入库,无法保证入库时满足所有共线开发的其它项目入库的验证要求,导致其它项目在事后才发现存在编译问题,影响项目开发进度,无法满足高效高质量软件迭代的需求的问题。
实施例3
如图3所示,本实施例提供了一种多项目共线开发代码的自动入库的***,包括获取模块、编译模块和入库处理模块。其中,获取模块用于获取待提交的代码;编译模块采用持续集成工具实现多个项目同时对所述代码进行编译,汇总得到编译结果;入库处理模块用于根据所述编译结果判断是否能够入库,若是,则将所述代码存入代码库。
本实施例采用持续集成工具实现了多项目共线开发时代码的同时编译,使得入库的代码能够满足每个项目的入库标准。解决了多项目共线开发代码入库时仅支持单项目验证通过后入库,无法保证入库时满足所有共线开发的其它项目入库的验证要求,导致其它项目在事后才发现存在编译问题,影响项目开发进度,无法满足高效高质量软件迭代的需求的问题。
实施例4
如图4所示,本实施例提供一种多项目共线开发代码的自动入库的***,包括规则设定模块1、配置模块2、获取模块3、预检查模块4、信息补齐模块5、关联性检查模块6、编译模块7、发送模块8、入库处理模块9和日志存储模块10。
其中,规则设定模块1用于将每个项目切分成若干研发阶段,为每个项目的每个研发阶段设定对应的入库规则。配置模块2用于使用Yaml配置文件获取参数的功能统一修改配置并在持续集成工具Jenkins挂载服务器定时运行任务。获取模块3用于获取待提交的代码。预检查模块4用于在获取模块执行完毕之后并且在调用信息补齐模块之前对代码进行预检查,以保证所述代码的统一性以及信息的正确性。信息补齐模块5用于在获取模块执行完毕之后并且在调用编译模块之前根据每个项目所处的研发阶段所对应的入库规则,自动对代码补齐需要的信息。关联性检查模块6用于在信息补齐模块执行完毕之后并且在调用编译模块之前对代码进行关联性检查,以确定代码与已经提交的代码在内容上是否有冲突。编译模块7采用Jenkins在声明式pipeline机制中嵌入自动化并行运行方法实现多个项目同时对代码进行编译,汇总得到编译结果;编译模块中的编译为增量迭代编译。
本实施例中,使用多项目并行编译机制,具体采用Jenkins持续集成工具实现多项目并行编译,在声明式pipeline机制中,嵌入自动化并行运行方法,可以多项目同时进行编译,并行监控,汇总编译结果。同时使用Yaml配置文件获取参数的功能,统一修改配置并在Jenkins挂载服务器定时运行任务,方便扩展复用。
本实施例中,采用增量迭代编译的方式,具体可以通过代码审查软件Gerrit的对比机制和打分机制,确认需要迭代的内容。只对符合特定分数的部分进行编译检查迭代,去除无用的全量编译及压缩打包流程,缩短编译时间。需要迭代的内容是存放在一个中转服务器上的,在进行迭代流程的时候,首先需要先把迭代内容从中转服务器下载到编译服务器上。
发送模块8用于将编译结果发送至预设的接收端。将编译结果及时通知预设的接收端,也即对应到接收人,保证信息传递的及时性,具体发送方式可以借助于邮件***或者手机短信等。
入库处理模块9用于根据编译结果判断是否能够入库,若是,则判断编译过程中代码是否有更新,若没有更新,则将代码存入所述代码库。日志存储模块10用于将每个模块执行的记录和/或结果存入数据库。结合数据库,对每个操作都进行数据记录,以便后期进一步追踪及处理,例如定期输出阶段性数据汇总结果,直观呈现工作数据、服务器使用数据、效率提升数据,提供优化方向等。
本实施例提供的多项目共线开发代码的自动入库的***,应用于多项目情况下,对代码进行预检查。每笔提交同时进行多项目增量编译、入库;实现多项目代码完全检查、迭代和增量编译方案。采用持续集成工具实现了多项目共线开发时代码的同时编译,使得入库的代码能够满足每个项目的入库标准。解决了多项目共线开发代码入库时仅支持单项目验证通过后入库,无法保证入库时满足所有共线开发的其它项目入库的验证要求,导致其它项目在事后才发现存在编译问题,影响项目开发进度,无法满足高效高质量软件迭代的需求的问题。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (16)
1.一种多项目共线开发代码的自动入库的方法,其特征在于,包括以下步骤:
获取待提交的代码;
采用持续集成工具实现多个项目同时对所述代码进行编译,汇总得到编译结果;
根据所述编译结果判断是否能够入库,若是,则将所述代码存入代码库。
2.如权利要求1所述的多项目共线开发代码的自动入库的方法,其特征在于,在所述获取待提交的代码的步骤之前还包括以下步骤:
将每个所述项目切分成若干研发阶段,为每个所述项目的每个所述研发阶段设定对应的入库规则;
在所述获取待提交的代码的步骤与所述采用持续集成工具实现多个项目同时对所述代码进行编译的步骤之间还包括以下步骤:
根据每个所述项目所处的所述研发阶段所对应的所述入库规则,自动对所述代码补齐需要的信息。
3.如权利要求1所述的多项目共线开发代码的自动入库的方法,其特征在于,
所述对所述代码进行编译的步骤中的编译为增量迭代编译。
4.如权利要求1所述的多项目共线开发代码的自动入库的方法,其特征在于,所述自动入库的方法还包括以下步骤:
将所述编译结果发送至预设的接收端。
5.如权利要求1所述的多项目共线开发代码的自动入库的方法,其特征在于,所述持续集成工具为Jenkins;
所述采用持续集成工具实现多个项目同时对所述代码进行编译的步骤为:采用Jenkins在声明式pipeline机制中嵌入自动化并行运行方法实现多个项目同时对所述代码进行编译;
在所述获取待提交的代码的步骤之前还包括以下步骤:
使用Yaml配置文件获取参数的功能统一修改配置并在所述Jenkins挂载服务器定时运行任务。
6.如权利要求2所述的多项目共线开发代码的自动入库的方法,其特征在于,在所述获取待提交的代码的步骤与所述根据每个项目所处的所述研发阶段对应的所述入库规则,自动对所述代码补齐需要的信息的步骤之间还包括以下步骤:对所述代码进行预检查,以保证所述代码的统一性以及信息的正确性;
在所述根据每个项目所处的所述研发阶段对应的所述入库规则,自动对所述代码补齐需要的信息的步骤与所述采用持续集成工具实现多个项目同时对所述代码进行编译的步骤之间还包括以下步骤:
对所述代码进行关联性检查,以确定所述代码与已经提交的代码在内容上是否有冲突。
7.如权利要求1所述的多项目共线开发代码的自动入库的方法,其特征在于,所述根据所述编译结果判断是否能够入库,若是,则将所述代码存入代码库的步骤包括:
根据所述编译结果判断是否能够入库,若是,则判断编译过程中代码是否有更新,若没有更新,则将所述代码存入所述代码库。
8.如权利要求1至7任一项所述的多项目共线开发代码的自动入库的方法,其特征在于,所述自动入库的方法还包括以下步骤:
将每个步骤操作的记录和/或结果存入数据库。
9.一种多项目共线开发代码的自动入库的***,其特征在于,包括:
获取模块,用于获取待提交的代码;
编译模块,采用持续集成工具实现多个项目同时对所述代码进行编译,汇总得到编译结果;
入库处理模块,用于根据所述编译结果判断是否能够入库,若是,则将所述代码存入代码库。
10.如权利要求9所述的多项目共线开发代码的自动入库的***,其特征在于,所述***还包括:
规则设定模块,用于将每个所述项目切分成若干研发阶段,为每个所述项目的每个所述研发阶段设定对应的入库规则;
信息补齐模块,用于在所述获取模块执行完毕之后并且在调用所述编译模块之前根据每个所述项目所处的所述研发阶段所对应的所述入库规则,自动对所述代码补齐需要的信息。
11.如权利要求9所述的多项目共线开发代码的自动入库的***,其特征在于,所述编译模块中的编译为增量迭代编译。
12.如权利要求9所述的多项目共线开发代码的自动入库的***,其特征在于,所述***还包括:
发送模块,用于将所述编译结果发送至预设的接收端。
13.如权利要求9所述的多项目共线开发代码的自动入库的***,其特征在于,所述持续集成工具为Jenkins;
所述编译模块采用Jenkins在声明式pipeline机制中嵌入自动化并行运行方法实现多个项目同时对所述代码进行编译;
所述***还包括;
配置模块,用于使用Yaml配置文件获取参数的功能统一修改配置并在所述Jenkins挂载服务器定时运行任务。
14.如权利要求10所述的多项目共线开发代码的自动入库的***,其特征在于,所述***还包括:
预检查模块,用于在所述获取模块执行完毕之后并且在调用所述信息补齐模块之前对所述代码进行预检查,以保证所述代码的统一性以及信息的正确性;
关联性检查模块,用于在所述信息补齐模块执行完毕之后并且在调用所述编译模块之前对所述代码进行关联性检查,以确定所述代码与已经提交的代码在内容上是否有冲突。
15.如权利要求9所述的多项目共线开发代码的自动入库的***,其特征在于,所述入库处理模块用于根据所述编译结果判断是否能够入库,若是,则判断编译过程中代码是否有更新,若没有更新,则将所述代码存入所述代码库。
16.如权利要求9至15任一项所述的多项目共线开发代码的自动入库的***,其特征在于,所述***还包括:
日志存储模块,用于将每个模块执行的记录和/或结果存入数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910910897.4A CN110688112A (zh) | 2019-09-25 | 2019-09-25 | 多项目共线开发代码的自动入库的方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910910897.4A CN110688112A (zh) | 2019-09-25 | 2019-09-25 | 多项目共线开发代码的自动入库的方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110688112A true CN110688112A (zh) | 2020-01-14 |
Family
ID=69110606
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910910897.4A Pending CN110688112A (zh) | 2019-09-25 | 2019-09-25 | 多项目共线开发代码的自动入库的方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110688112A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111538484A (zh) * | 2020-03-26 | 2020-08-14 | 北京迈格威科技有限公司 | 多项目的模块化管理方法、生物解锁模型获取方法和产品 |
CN113031960A (zh) * | 2021-03-18 | 2021-06-25 | 北京达佳互联信息技术有限公司 | 代码编译方法、装置、服务器及存储介质 |
CN115774565A (zh) * | 2023-02-10 | 2023-03-10 | 成都数联云算科技有限公司 | 一种单代码仓库建设方法及***及装置及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104468275A (zh) * | 2014-12-18 | 2015-03-25 | 辽宁生产力促进中心 | 一种产业集群创新平台测试装置及方法 |
CN107168758A (zh) * | 2017-04-12 | 2017-09-15 | 北京小米移动软件有限公司 | 多代码库的代码编译检查方法及装置 |
CN107908543A (zh) * | 2017-07-26 | 2018-04-13 | 平安壹钱包电子商务有限公司 | 应用程序测试方法、装置、计算机设备及存储介质 |
CN109408372A (zh) * | 2018-09-26 | 2019-03-01 | 平安普惠企业管理有限公司 | 公共组件测试方法、装置、计算机设备和存储介质 |
CN109885311A (zh) * | 2019-01-28 | 2019-06-14 | 平安科技(深圳)有限公司 | 一种应用程序的生成方法及设备 |
-
2019
- 2019-09-25 CN CN201910910897.4A patent/CN110688112A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104468275A (zh) * | 2014-12-18 | 2015-03-25 | 辽宁生产力促进中心 | 一种产业集群创新平台测试装置及方法 |
CN107168758A (zh) * | 2017-04-12 | 2017-09-15 | 北京小米移动软件有限公司 | 多代码库的代码编译检查方法及装置 |
CN107908543A (zh) * | 2017-07-26 | 2018-04-13 | 平安壹钱包电子商务有限公司 | 应用程序测试方法、装置、计算机设备及存储介质 |
CN109408372A (zh) * | 2018-09-26 | 2019-03-01 | 平安普惠企业管理有限公司 | 公共组件测试方法、装置、计算机设备和存储介质 |
CN109885311A (zh) * | 2019-01-28 | 2019-06-14 | 平安科技(深圳)有限公司 | 一种应用程序的生成方法及设备 |
Non-Patent Citations (4)
Title |
---|
YONG_无止境: "《代码Verify简介》", 《HTTPS://WWW.CNBLOGS.COM/CHUSIYONG/P/11395548.HTML》, 22 August 2019 (2019-08-22), pages 1 * |
YONG_无止境: "《代码Verify简介》", 《HTTPS://WWW.CNBLOGS.COM/CHUSIYONG/P/11395548.HTML》, pages 1 * |
张江华等: "《毫米波导引头***设计与工程实现》", 国防工业出版社, pages: 128 * |
黑洞文明: "《代码共享技巧》", 《HTTPS://WWW.JIANSHU.COM/P/94D5510DF167代码共享技巧 - 简书 (JIANSHU.COM)》, 22 August 2019 (2019-08-22), pages 1 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111538484A (zh) * | 2020-03-26 | 2020-08-14 | 北京迈格威科技有限公司 | 多项目的模块化管理方法、生物解锁模型获取方法和产品 |
CN113031960A (zh) * | 2021-03-18 | 2021-06-25 | 北京达佳互联信息技术有限公司 | 代码编译方法、装置、服务器及存储介质 |
CN113031960B (zh) * | 2021-03-18 | 2024-04-30 | 北京达佳互联信息技术有限公司 | 代码编译方法、装置、服务器及存储介质 |
CN115774565A (zh) * | 2023-02-10 | 2023-03-10 | 成都数联云算科技有限公司 | 一种单代码仓库建设方法及***及装置及介质 |
CN115774565B (zh) * | 2023-02-10 | 2023-04-18 | 成都数联云算科技有限公司 | 一种单代码仓库建设方法及***及装置及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110287052B (zh) | 一种异常任务的根因任务确定方法及装置 | |
CN104866599B (zh) | 可视化报表的生产方法和*** | |
CN103514223A (zh) | 一种数据仓库数据同步方法和*** | |
CN110688112A (zh) | 多项目共线开发代码的自动入库的方法及*** | |
US20130014082A1 (en) | Method of configuring business logic supporting multi-tenancy | |
CN113934640A (zh) | 一种软件自动化测试的方法和*** | |
US20240232758A1 (en) | Apparatus and method for establishing production plan | |
CN108255735B (zh) | 关联环境测试方法、电子装置及计算机可读存储介质 | |
CN113032257A (zh) | 自动化测试方法、装置、计算机***和可读存储介质 | |
CN115543781A (zh) | 汽车软件模型自动化验证的方法及交互*** | |
CN111966760A (zh) | 基于Hive数据仓库的测试数据生成方法及装置 | |
CN114090019A (zh) | 一种基于软件集成的代码构建、扫描及存储平台 | |
CN114968819A (zh) | 面向微服务持续集成的代码质量问题检测及修复方法 | |
CN114860296A (zh) | 软件持续集成方法、装置和存储介质 | |
CN114489704A (zh) | 基于策略的版本编译部署方法及装置 | |
CN113032256A (zh) | 自动化测试方法、装置、计算机***和可读存储介质 | |
CN112650189A (zh) | 一种嵌入式plc自动化测试***及方法 | |
CN111881128B (zh) | 大数据回归验证方法及大数据回归验证装置 | |
CN116720818B (zh) | 基于区块链的仓储处理方法、装置、计算机设备 | |
CN114675839B (zh) | 一种基于有向图的代码仓库Java冲突文件排序分组方法 | |
CN113010424B (zh) | 接口自动化测试处理方法、***、计算机设备与存储介质 | |
CN111651364B (zh) | 并行开发下的sql检查方法及装置 | |
CN117785212A (zh) | 导入依赖包和第三方库裁剪优化方法、装置、介质及设备 | |
CN115033555A (zh) | 任务依赖关系的修复方法及装置、电子设备、存储介质 | |
CN117370202A (zh) | 数仓全链路测试方法、装置、设备及存储介质 |
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 |