CN102135877B - 自动化构建方法及装置 - Google Patents
自动化构建方法及装置 Download PDFInfo
- Publication number
- CN102135877B CN102135877B CN201010103199.2A CN201010103199A CN102135877B CN 102135877 B CN102135877 B CN 102135877B CN 201010103199 A CN201010103199 A CN 201010103199A CN 102135877 B CN102135877 B CN 102135877B
- Authority
- CN
- China
- Prior art keywords
- information
- source code
- verification
- compiling
- compiling information
- 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
Images
Abstract
本发明公开了一种自动化构建方法及装置,属于计算机技术领域。所述方法包括:获取编译信息,并对获取到的编译信息进行构建校验,该编译信息至少包括项目组成员信息、源代码信息以及构建编译方式信息;如果所述编译信息通过构建校验,则获取源代码,并在成功获取源代码后,对获取到的所述源代码进行编译和集成;如果所述编译信息未通过构建校验,则获取并存储错误信息。本发明通过对获取到的编译信息进行构建校验,并在构建校验通过之后,再获取源代码,不仅可以提高源代码的信息安全性,还能提高软件开发的效率,保证软件质量。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种自动化构建方法及装置。
背景技术
自动化构建是目前计算机软件产品集成的主要方法,通过自动化获取源代码,再进行编译和集成这样一个流程来进行软件产品研发。特别是对于大型的软件产品,自动化构建显得极为重要。
现有的自动化构建方式中,在程序员开发完代码,由项目相关负责人或者开发人员将其存储到代码库后,将直接自动化获取源代码,并进行编译及集成。
在实现本发明的过程中,发明人发现现有技术至少存在以下缺点:
现有的自动化构建在项目开发过程中,缺少对参与人员的有效管理机制;又由于每个参与人员都可直接访问代码库,将存在较高风险,导致代码的信息安全性低。
发明内容
为了提高源代码的信息安全性能,进而提高软件开发的效率,同时保证开发的软件质量,本发明实施例提供了一种自动化构建方法及装置。所述技术方案如下:
一方面,提供了一种自动化构建方法,所述方法包括:
获取编译信息,并对获取到的编译信息进行构建校验,所述编译信息至少包括项目组成员信息、源代码信息以及构建编译方式信息;
如果所述编译信息通过构建校验,则获取源代码,并在成功获取源代码后,对获取到的所述源代码进行编译和集成;
如果所述编译信息未通过构建校验,则获取并存储错误信息;
其中,所述对获取到的编译信息进行构建校验,具体包括:
对获取到的编译信息中的项目组成员信息进行校验;
如果所述编译信息中的项目组成员信息未通过校验,则判断所述编译信息未通过构建校验;
如果所述编译信息中的项目组成员信息通过校验,则查询代码库,对所述编译信息中的源代码信息进行校验,如果所述源代码信息未通过校验,则判断所述编译信息未通过构建校验,否则,判断所述编译信息通过构建校验。
另一方面,提供了一种自动化构建装置,所述装置包括:
获取模块,用于获取编译信息,所述编译信息至少包括项目组成员信息、源代码信息以及构建编译方式信息;
构建校验模块,用于对获取到的编译信息进行构建校验;
第一处理模块,用于在所述编译信息通过所述构建校验模块的构建校验时,则获取源代码,并在成功获取源代码后,对获取到的所述源代码进行编译和集成;
第二处理模块,用于在所述编译信息未通过所述构建校验模块的构建校验时,则获取并存储错误信息;
其中,所述构建校验模块,具体包括:
校验单元,用于对获取到的编译信息中的项目组成员信息进行校验;
第一处理单元,用于在所述编译信息中的项目组成员信息未通过所述校验单元的校验时,则判断所述编译信息未通过构建校验;
第二处理单元,用于在所述编译信息中的项目组成员信息通过所述校验单元的校验后,查询代码库,对所述编译信息中的源代码信息进行校验,并在所述源代码信息未通过校验时,判断所述编译信息未通过构建校验,否则,判断所述编译信息通过构建校验。
本发明实施例提供的技术方案的有益效果是:
通过对获取到的编译信息进行构建校验,并在构建校验通过之后,再获取源代码,不仅可以提高源代码的信息安全性,还能提高软件开发的效率,保证开发的软件质量;又由于编译信息中还包括项目组成员信息,因而可将源代码和项目组成员信息进行关联,便于对项目组成员进行管理。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的自动化构建方法流程图;
图2是本发明实施例二提供的自动化构建方法流程图;
图3是本发明实施例三提供的自动化构建装置结构示意图;
图4是本发明实施例三提供的构建校验模块结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一
参见图1,本实施例提供了一种自动化构建方法,该方法流程具体如下:
101:获取编译信息,并对获取到的编译信息进行构建校验,该编译信息至少包括项目组成员信息、源代码信息以及构建编译方式信息;如果编译信息通过构建校验,则执行102,如果编译信息未通过构建校验,则执行103;
102:获取源代码,并在成功获取源代码后,对获取到的源代码进行编译和集成;
103:获取并存储错误信息。
其中,本实施例及后续实施例涉及到的编译信息,包括但不限于以下信息:
a、项目组成员信息:包括本次构建的开发人员标识、所属项目组明细和构建编译的时间等信息;
b、源代码信息:包括源代码在代码库中的位置、编译构建输出的文件类型(例如:exe,dll,ocx,sql等)、文件版本信息(主版本号和次版本号)、支持对应的操作系统明细(主流操作系统,如Windows、Linux版本,同时包括对应系统的地区和语言)、共享模式、注册类型、本地路径位置、兼容模式和覆盖模式等信息;
c、构建编译方式信息:至少分为立即编译源代码和定时编译源代码两种编译方式。本实施例不对定时的具体时间进行限定,可根据实际情况进行设定,例如,设定每隔一分钟对源代码进行编译。
本实施例提供的方法,通过对获取到的编译信息进行构建校验,并在构建校验通过之后,再获取源代码,不仅可以提高源代码的信息安全性,还能提高软件开发的效率,保证开发的软件质量;另外,又由于编译信息中还包括项目组成员信息,因而可将源代码和项目组成员信息进行关联,便于对项目组成员进行管理。
实施例二
本实施例提供了一种自动化构建方法,该方法在对源代码进行编译和集成之前,先获取编译信息,并对获取到的编译信息进行构建校验,保证在编译信息校验通过的情况下,再获取源代码,从而保证源代码的信息安全性,进而提高开发的软件质量。参见图2,方法流程具体如下:
201:获取编译信息,并对获取到的编译信息中的项目组成员信息进行校验;如果校验通过,则执行步骤202,如果校验未通过,则执行步骤205;
针对该步骤,由于编译信息至少包括项目组成员信息、源代码信息以及构建编译方式信息,如果这些编译信息通过一个文件存储,则在获取编译信息时,通过获取一个文件即可获取到编译信息,如果这些编译信息是分别存储在不同的文件中,例如,项目组成员信息存储在文件A中,而源代码信息及构建编译方式信息存储在另外的文件B中,则在获取编译信息时,需要通过获取文件A和文件B才能获取到编译信息。也就是说,编译信息可以存储在同一个文件中,也可以存储在多个文件中,本实施例对存储编译信息的方式不作限定,同样不对获取编译信息的方式进行限定。
而获取编译信息之后,对项目组成员信息进行校验的目的,是为了防止非本项目成员对该项目的源代码进行任意修改,因此,通过对项目组成员信息进行校验,可以对项目组成员进行有效管理。
202:查询代码库,对获取到的编译信息中的代码信息进行校验,如果校验通过,则执行步骤203,如果校验未通过,则执行步骤205;
针对该步骤,由于是在对编译信息中的项目组成员信息进行校验之后,才查询代码库,因而可以保证代码库的信息安全。
203:获取源代码,如果获取成功,则执行步骤204,如果获取失败,则执行步骤205;
具体地,由于编译信息中的源代码信息中包括源代码在代码库中的位置、编译构建输出的文件类型、文件版本信息、本地路径位置等信息,因此,可根据编译信息中的源代码信息获取源代码。
204:对获取到的源代码进行编译和集成,流程结束;
具体地,由于编译信息中的构建编译方式信息中至少定义了立即编译源代码和定时编译源代码两种编译方式,因此,可按照编译信息中的构建编译方式信息,对获取到的源代码进行编译。例如,如果编译信息中的构建编译方式信息为立即编译源代码,则在获取源代码之后,需要立即对获取到的源代码进行编译;如果编译信息中的构建编译方式信息为定时编译源代码,则在获取源代码之后,按照预定时间编译源代码,本实施例不对定时编译源代码的预定时间进行具体限定。
优选地,本实施例提供的方法在对获取到的源代码进行编译和集成之前,还包括:获取并存储源代码日志。该源代码日志记录了源代码获取的相关信息,例如,获取源代码的时间,源代码所在的代码库的标识,以及源代码在代码库中的位置等信息,本实施例不对源代码日志的具体内容进行限定。在存储该源代码日志时,可将该源代码日志存储到日志信息库中,以便研发或管理人员通过查询日志信息库,获知源代码的详细信息。
205:获取并存储错误信息,流程结束。
其中,错误信息有多种,例如,在对编译信息中的项目组成员信息进行校验时,如果校验未通过,则获取到错误信息;在获取源代码时,源代码获取失败时,也可获取到错误信息。获取错误信息的方式也可以有多种,本实施例不对获取错误信息的具体方式及错误信息的具体内容进行限定。另外,本实施例同样不对存储错误信息的方式进行限定,实际应用过程中,可将获取到的错误信息保存到日志信息库中,以便研发或管理人员通过查询日志信息库,获知项目开发过程中的失败原因。
进一步地,在对源代码进行编译和集成之后,还可对集成后的产品进行发布,如果在产品集成或发布过程中出现了问题,则可以通过查询日志信息库,实现问题的定位。例如,通过查询日志信息库,可快速查找出哪些源代码被修改过,并被提交和编译,则经过排查,即可很快定位出问题的代码,并且查找到对应的项目组成员。
本实施例提供的方法,通过对获取到的编译信息进行构建校验,并在构建校验通过之后,再获取源代码,因而可以提高源代码的信息安全性,且通过对源代码信息进行校验,从而能够保证开发的软件质量;另外,根据源代码信息获取源代码之后,再进行编译,使得代码编译的针对性强,可节约编译时间,提高编译效率,进而提高软件开发的效率;又由于编译信息中还包括项目组成员信息,因而可将源代码和项目组成员信息进行关联,通过对项目组成员信息进行校验,便于对项目组成员进行管理。
实施例三
参见图3,本实施例提供了一种自动化构建装置,该装置包括:
获取模块301,用于获取编译信息,该编译信息至少包括项目组成员信息、源代码信息以及构建编译方式信息;
构建校验模块302,用于对获取到的编译信息进行构建校验;
第一处理模块303,用于在编译信息通过构建校验模块302的构建校验时,则获取源代码,并在成功获取源代码后,对获取到的源代码进行编译和集成;
第二处理模块304,用于在编译信息未通过构建校验模块301构建校验时,则获取并存储错误信息。
其中,参见图4,构建校验模块302,具体包括:
校验单元302a,用于对获取到的编译信息中的项目组成员信息进行校验;
第一处理单元302b,用于在编译信息中的项目组成员信息未通过校验单元301a的校验时,则判断编译信息未通过构建校验;
第二处理单元302c,用于在编译信息中的项目组成员信息通过校验单元301a的校验后,查询代码库,对编译信息中的源代码信息进行校验,并在源代码信息未通过校验时,判断编译信息未通过构建校验,否则,判断编译信息通过构建校验。
具体地,第一处理模块303在获取源代码时,具体用于根据编译信息中的源代码信息获取源代码。
第一处理模块303在对源代码进行编译时,具体用于按照编译信息中的构建编译方式信息,对源代码进行编译。
进一步地,第一处理模块303在对源代码进行编译和集成之前,还用于获取并存储源代码日志。
综上,本实施例提供的装置,本实施例提供的方法,通过对获取到的编译信息进行构建校验,并在构建校验通过之后,再获取源代码,因而可以提高源代码的信息安全性,且通过对源代码信息进行校验,从而能够保证开发的软件质量;另外,根据源代码信息获取源代码之后,再进行编译,使得代码编译的针对性强,可节约编译时间,提高编译效率,进而提高软件开发的效率;又由于编译信息中还包括项目组成员信息,因而可将源代码和项目组成员信息进行关联,通过对项目组成员信息进行校验,便于对项目组成员进行管理。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本发明实施例中的全部或部分步骤,可以利用软件实现,相应的软件程序可以存储在可读取的存储介质中,如光盘或硬盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种自动化构建方法,其特征在于,所述方法包括:
获取编译信息,并对获取到的编译信息进行构建校验,所述编译信息至少包括项目组成员信息、源代码信息以及构建编译方式信息;
如果所述编译信息通过构建校验,则获取源代码,并在成功获取源代码后,对获取到的所述源代码进行编译和集成;
如果所述编译信息未通过构建校验,则获取并存储错误信息;
其中,所述对获取到的编译信息进行构建校验,具体包括:
对获取到的编译信息中的项目组成员信息进行校验;
如果所述编译信息中的项目组成员信息未通过校验,则判断所述编译信息未通过构建校验;
如果所述编译信息中的项目组成员信息通过校验,则查询代码库,对所述编译信息中的源代码信息进行校验,如果所述源代码信息未通过校验,则判断所述编译信息未通过构建校验,否则,判断所述编译信息通过构建校验。
2.根据权利要求1所述的方法,其特征在于,所述获取源代码,具体包括:
根据所述编译信息中的源代码信息获取源代码。
3.根据权利要求1所述的方法,其特征在于,所述对所述源代码进行编译,具体包括:
按照所述编译信息中的构建编译方式信息,对所述源代码进行编译。
4.根据权利要求1至3任一权利要求所述的方法,其特征在于,所述对所述源代码进行编译和集成之前,还包括:
获取并存储源代码日志。
5.一种自动化构建装置,其特征在于,所述装置包括:
获取模块,用于获取编译信息,所述编译信息至少包括项目组成员信息、源代码信息以及构建编译方式信息;
构建校验模块,用于对所述获取模块获取到的编译信息进行构建校验;
第一处理模块,用于在所述编译信息通过所述构建校验模块的构建校验时,则获取源代码,并在成功获取源代码后,对获取到的所述源代码进行编译和集成;
第二处理模块,用于在所述编译信息未通过所述构建校验模块的构建校验时,则获取并存储错误信息;
其中,所述构建校验模块,具体包括:
校验单元,用于对获取到的编译信息中的项目组成员信息进行校验;
第一处理单元,用于在所述编译信息中的项目组成员信息未通过所述校验单元的校验时,则判断所述编译信息未通过构建校验;
第二处理单元,用于在所述编译信息中的项目组成员信息通过所述校验单元的校验后,查询代码库,对所述编译信息中的源代码信息进行校验,并在所述源代码信息未通过校验时,判断所述编译信息未通过构建校验,否则,判断所述编译信息通过构建校验。
6.根据权利要求5所述的装置,其特征在于,所述第一处理模块在获取源代码时,具体用于根据所述编译信息中的源代码信息获取源代码。
7.根据权利要求5所述的装置,其特征在于,所述第一处理模块在对所述源代码进行编译时,具体用于按照所述编译信息中的构建编译方式信息,对所述源代码进行编译。
8.根据权利要求5至7任一权利要求所述的装置,其特征在于,所述第一处理模块在对获取到的所述源代码进行编译和集成之前,还用于获取并存储源代码日志。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010103199.2A CN102135877B (zh) | 2010-01-27 | 2010-01-27 | 自动化构建方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010103199.2A CN102135877B (zh) | 2010-01-27 | 2010-01-27 | 自动化构建方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102135877A CN102135877A (zh) | 2011-07-27 |
CN102135877B true CN102135877B (zh) | 2014-05-28 |
Family
ID=44295672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010103199.2A Active CN102135877B (zh) | 2010-01-27 | 2010-01-27 | 自动化构建方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102135877B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591661A (zh) * | 2011-12-30 | 2012-07-18 | 苏州汉清投资管理有限公司 | 一种实现软件集成的系统 |
CN103473076B (zh) * | 2013-09-25 | 2016-11-23 | 中国联合网络通信集团有限公司 | 一种代码版本的发布方法及系统 |
CN104331665B (zh) * | 2014-10-29 | 2017-08-08 | 中国农业银行股份有限公司 | 一种可追溯目标码的生成方法及可追溯目标码生成器 |
CN104462393B (zh) * | 2014-12-10 | 2017-11-14 | 北京国双科技有限公司 | 用于编译的文件路径的确定方法及装置 |
CN105975276B (zh) * | 2016-05-09 | 2019-04-09 | 上海携程商务有限公司 | 分布式构建系统及方法 |
CN110704036B (zh) * | 2018-07-10 | 2023-05-26 | 阿里巴巴集团控股有限公司 | 构建脚本的方法、装置和存储介质 |
CN108984182A (zh) * | 2018-08-21 | 2018-12-11 | 苏州蜗牛数字科技股份有限公司 | 一种程序编译控制方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101093531A (zh) * | 2007-04-30 | 2007-12-26 | 李宏强 | 一种提高计算机软件安全的方法 |
CN101149682A (zh) * | 2007-10-31 | 2008-03-26 | 金蝶软件(中国)有限公司 | 一种日构建方法、装置及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100506522B1 (ko) * | 2003-02-24 | 2005-08-03 | 삼성전자주식회사 | 자바 프로그램에서 바이트 코드의 컴파일 시간 단축시스템 및 방법 |
-
2010
- 2010-01-27 CN CN201010103199.2A patent/CN102135877B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101093531A (zh) * | 2007-04-30 | 2007-12-26 | 李宏强 | 一种提高计算机软件安全的方法 |
CN101149682A (zh) * | 2007-10-31 | 2008-03-26 | 金蝶软件(中国)有限公司 | 一种日构建方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102135877A (zh) | 2011-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102135877B (zh) | 自动化构建方法及装置 | |
CN100555218C (zh) | 用于改善片上仿真系统中高级语言的仿真速度的装置和方法 | |
CN103744709B (zh) | 补丁加载方法及装置 | |
US8151248B1 (en) | Method and system for software defect management | |
US20160306612A1 (en) | Determining errors and warnings corresponding to a source code revision | |
WO2013007068A1 (zh) | 一种面向硬件设备功能的自动测试系统及方法 | |
CN103154908A (zh) | 用于事务存储器的最后分支记录指示符 | |
TWI566090B (zh) | Debugging firmware / software to produce tracking systems and methods, recording media and computer program products | |
CN105074671A (zh) | 用于在内核模块和设备驱动程序中检测并发编程错误的方法和系统 | |
CN109508178A (zh) | 一种程序开发方法及装置 | |
JP6342129B2 (ja) | 混合モードプログラムのソースコードエラー位置検出装置及び方法 | |
CN100349131C (zh) | 一种应用程序故障的定位方法 | |
CN107479980B (zh) | 一种检测应用中死锁的方法与设备 | |
CN105701006A (zh) | 用于程序调试中的变量跟踪的方法和系统 | |
US9535687B2 (en) | Audited builds based upon separate class dependency records | |
CN102364433B (zh) | 在ARM处理器上实现Wine构建工具移植的方法 | |
CN105630661A (zh) | 用于自动化跨系统程序调试的方法和装置 | |
US20050228644A1 (en) | Generic user interface testing framework with rules-based wizard | |
CN103677754A (zh) | 用于优化应用程序的并行构建的方法和系统 | |
US11030074B2 (en) | Code update based on detection of change in runtime code during debugging | |
CN102722438A (zh) | 一种内核调试的方法和设备 | |
US20180196669A1 (en) | Reduced save and restore instructions for call-clobbered registers | |
CN104461880A (zh) | 一种嵌入式系统中自动检测内存越界的方法及系统 | |
CN104317723B (zh) | 一种驱动程序运行信息的跟踪方法及系统 | |
US8966455B2 (en) | Flow analysis in program execution |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |