CN102368216A - 一种基于项目自动构造的流程实现方法 - Google Patents
一种基于项目自动构造的流程实现方法 Download PDFInfo
- Publication number
- CN102368216A CN102368216A CN2011103219089A CN201110321908A CN102368216A CN 102368216 A CN102368216 A CN 102368216A CN 2011103219089 A CN2011103219089 A CN 2011103219089A CN 201110321908 A CN201110321908 A CN 201110321908A CN 102368216 A CN102368216 A CN 102368216A
- Authority
- CN
- China
- Prior art keywords
- project
- file
- deployment
- product
- implementation method
- 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.)
- Granted
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
Abstract
一种基于项目自动构造的流程实现方法。包括步骤:首先是先定义好产品构造BOM信息和程序集部署相关信息,然后是从TFS(源代码管理服务器)中获取最新源代码,在清理上次构造部署可能存在的历史遗留文件后调用编译工具进行编译,生成新的程序集文件及页面文件等程序运行所需文件,然后调用部署工具按数据库注册规则,把项目编译后的文件部署到项目临时输出文件夹下,接着项目配置文件工具通过反射技术重新生成相应的程序部署所需的配置文件,依据数据库中的产品构造BOM信息生成产品部署文件包,加入代码审查工具到TFS流程构造中,对开发的代码进行规范性审查,最后将生成的文件发布到IIS指定的目录文件夹下面,调用构造模板重新启动IIS。
Description
技术领域
本发明涉及一种软件配置管理领域技术中的项目自动构造技术,特别涉及应用于软件项目自动构造、部署、发布领域。
背景技术
因为软件项目构造是一个步骤多、配置项繁杂的过程,手工构造的话难免会出现这样那样的配置问题,构造不成功就不能保证测试、发布的时间,所以我们需要一个工具来自动完成这个过程,结合微软Micrft TamFoundation Server 2010中的核心功能点之一流程模板,并开发部署和配置工具,统集成到自动构造模板中,通过TFS流程模板属性中的触发器属性设置构造时间点,最终实现项目的自动构造、部署。
市场上其他同类产品不能做到定制灵活的构造触发器,并且不具备整个构造过程中的日志监控跟踪。
每日构建(Daily Build)也可称为持续集成(Continuous Integration),强调完全自动化的、可重复的创建过程,每日构建的作用日益显得重要。它让开发者可以每天进行系统集成,从而减少了开发过程中的集成问题,每日构建的好处就是可以及时的与研发保持同步,并且可以随时的调整测试策略。根据测试内容的完成情况,确定测试的完成日期。这个对整个项目来说都是相当重要的。
发明内容
本发明的目的在于缩短项目测试、发布的周期,按照工厂流水线方式产出项目,提高软件开发部署的效率,规范化软件生产流程,软件项目的自动化构造工具的好处不仅在于高效省时、任劳任怨,而且还可以保证结果的连续性和一致性。
为此,本发明公开了一种基于项目自动构造的流程实现方法。所述项目自动构造的方法步骤如下:
步骤一、通过微软公司的TFS软件建立构造模板,将调用进程活动节点添加到TFS所建立的构造模板中,然后将通过所述构造模板开发的产品构造BOM信息存储在数据库中;
步骤二、步骤二、在数据库中建立两张数据表,构造程序集信息表和产品文件部署信息表,将产品项目的构造、部署相关信息都注册到数据库中;
步骤三、开发的项目部署工具按数据库中的注册规则对在模板中定义好需要构造的项目进行部署,并在模板的调用进程活动节点中设置需要执行的批处理文件;
步骤四、调用构造模板中的进程活动节点中所使用的批处理文件,通过调用TFS命令行脚本对所述批处理文件的项目源代码从源代码服务器上迁出,并将此源代码移至构造服务器中;
步骤五、清除上次构造部署所产生的历史遗留文件,再通过微软的源代码管理工具TFS调用微软的编译工具MsBuild.exe对获取了的源代码项目进行编译,生成新的程序集文件及响应的应用程序运行所需的配置文件;
步骤六、项目配置文件工具通过反射技术重新生成相应的程序部署所需的配置文件,最后依据数据库中的产品构造BOM信息生成产品部署文件包;
步骤七、加入代码审查工具到TFS流程构造中,通过审查工具中的代码审查点规则文档对开发的代码进行规范性审查;
步骤八、生成的文件发布到IIS指定的目录文件夹下面,调用构造模板重新启动IIS。
优选的是,所述的基于项目自动构造的流程实现方法中,步骤一中的BOM信息包含:产品名称、组件名称、产品部署方式、组件类型、组件时间以及部署路径。
优选的是,所述的基于项目自动构造的流程实现方法中,步骤二中构造程序集信息表里面记录了需要构造的程序集、程序集的类型、文件类型、所在产品版本、以及相关项目信息,产品文件部署信息表记录了产品中的每一个程序文件部署方式、部署路径、部署文件来源路径信息,即记录了在不同的部署方式下产品文件放置的规则。
优选的是,所述的基于项目自动构造的流程实现方法中,部署方式分为集中式和分布式两种。
优选的是,所述的基于项目自动构造的流程实现方法中,产品文件包括程序集、网页文件、css文件、项目文件、配置文件。
优选的是,所述的基于项目自动构造的流程实现方法中,步骤五中的程序集文件就是一个项目编译后生成的程序运行所需Dll文件和可执行程序文件。
优选的是,所述的基于项目自动构造的流程实现方法中,步骤七中的规范性审查是为了保证代码质量得到持续改进。
本发明的有益效果是:
1、提高软件开发部署的效率,规范化软件生产流程;
2、减少步骤、简化配置项的过程,保证测试和发布的时间;
3、保证了结果的连续性和一致性。
附图说明
附图1为该基于项目自动构造的流程实现方法的流程图。
具体实施方式
下面结合附图对本发明做进一步说明,以使本领域普通技术人员参照本说明书后能够据以实施。
如图1所示,本发明的一种基于项目自动构造的流程实现方法,包括如下步骤:
步骤一、通过微软公司的TFS软件建立构造模板,将调用进程活动节点添加到TFS所建立的构造模板中,然后将通过所述构造模板开发的产品构造BOM信息存储在数据库中,在数据库中建立两张数据表,构造程序集信息表和产品文件部署信息表,构造程序集信息表里面记录了需要构造的程序集、程序集的类型、文件类型、所在产品版本、以及相关项目信息,产品文件部署信息表记录了不同的产品文件,包括网页文件、css文件、项目文件、配置文件等每一个程序文件的部署方式、部署路径、部署文件来源路径信息,部署方式包括集中式和分布式两种部署方式,即记录了在不同的部署方式下产品文件放置的规则,这些产品项目构造、部署相关信息都注册到数据库中;
步骤二、开发的项目部署工具按数据库中的注册规则对在模板中定义好需要构造的项目进行部署,并在模板的调用进程活动节点中设置需要执行的批处理文件;
步骤四、调用进程活动节点去调用构造模板中所使用的批处理文件,通过调用TFS命令行脚本对所述批处理文件的项目源代码从源代码服务器上迁出,并将此源代码移至构造服务器中;
步骤五、清除上次构造部署所产生的历史遗留文件,再通过微软的源代码管理工具TFS调用微软的编译工具MsBuild.exe对获取了的源代码项目进行编译,生成新的程序集文件及响应的应用程序运行所需的配置文件;
步骤六、项目配置文件工具通过反射技术重新生成相应的程序部署所需的配置文件,最后依据数据库中的产品构造BOM信息生成产品部署文件包;
步骤七、加入代码审查工具到TFS流程构造中,通过审查工具中的代码审查点规则文档对开发的代码进行规范性审查;
步骤八、生成的文件发布到IIS指定的目录文件夹下面,调用构造模板重新启动IIS。
另一种实现形式是:
步骤一、需要一个辅助工具Microsoft Team Foundation Server 2010Power Tools建立构造模板,通过把Microsoft.TeamFoundation.Build.Wor-kflow.Activities.InvokeProcess节点添加到TFS流程模板中,通过将产品构造BOM信息存储在数据库中。
步骤二、建立两张数据表分别为构造程序集信息表和产品文件部署信息表,构造程序集信息表对产品构造信息进行注册,以及对产品程序集信息进行分类,部署类型按照集中式和分布式两种部署方式,产品文件部署信息表中包含程序集文件、网页文件、css文件、项目文件、配置文件,按不同文件路径和文件类型进行文件部署信息的注册。
步骤三、InvokeProcess节点中再调用批处理文件,批处理文件中调用TFS命令行脚本对项目源代码从源代码服务器上进行迁出操作,迁出到构造服务器中,通过微软的编译工具MsBuild.exe对获取过来的项目进行编译操作,将会生成新的程序集文件和其他相关项目文件。
步骤四、开发的项目部署工具会按照上一步描述的数据库注册规则对项目进行部署操作,项目配置文件工具通过反射技术重新生成所需的配置文件,最后依据数据库产品构造BOM进行产品部署文件包的生成。
步骤五、调用配置工具对项目中大量的配置文件通过构造出来的DLL文件,通过反射技术获取相关程序集中类和方法的信息后重新生成配置文件。
步骤六、代码审查工具加入到流程构造中来,对代码进行自动审查,规范开发流程,可以让团队在持续的基础上收到反馈并进行改进。
步骤七、生成的文件发布到IIS指定的目录文件夹下面,调用构造模板重新启动IIS。
尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。
Claims (7)
1.一种基于项目自动构造的流程实现方法,其特征在于,包括以下步骤:
步骤一、通过微软公司的TFS软件建立构造模板,将调用进程活动节点添加到TFS所建立的构造模板中,然后将通过所述构造模板开发的产品构造BOM信息存储在数据库中;
步骤二、在数据库中建立两张数据表,构造程序集信息表和产品文件部署信息表,将产品项目的构造、部署相关信息都注册到数据库中;
步骤三、开发的项目部署工具按数据库中的注册规则对在模板中定义好需要构造的项目进行部署,并在模板的调用进程活动节点中设置需要执行的批处理文件;
步骤四、调用构造模板中的进程活动节点所使用的批处理文件,通过调用TFS命令行脚本对所述批处理文件的项目源代码从源代码服务器上迁出,并将此源代码移至构造服务器中;
步骤五、清除上次构造部署所产生的历史遗留文件,再通过微软的源代码管理工具TFS调用微软的编译工具MsBuld.exe对获取了的源代码项目进行编译,生成新的程序集文件及响应的应用程序运行所需的配置文件;
步骤六、项目配置文件工具通过反射技术重新生成相应的程序部署所需的配置文件,最后依据数据库中的产品构造BOM信息生成产品部署文件包;
步骤七、加入代码审查工具到TFS流程构造中,通过审查工具中的代码审查点规则文档对开发的代码进行规范性审查;
步骤八、生成的文件发布到IIS指定的目录文件夹下面,调用构造模板重新启动IIS。
2.如权利要求1所述的基于项目自动构造的流程实现方法,其特征在于,步骤一中的BOM信息包含:产品名称、组件名称、产品部署方式、组件类型、组件时间以及部署路径。
3.如权利要求1所述的基于项目自动构造的流程实现方法,其特征在于,步骤二中构造程序集信息表里面记录了需要构造的程序集、程序集的类型、文件类型、所在产品版本、以及相关项目信息,产品文件部署信息表记录了产品中的每一个程序文件部署方式、部署路径、部署文件来源路径信息,即记录了在不同的部署方式下产品文件放置的规则。
4.如权利要求3所述的基于项目自动构造的流程实现方法,其特征在于,部署方式分为集中式和分布式两种。
5.如权利要求3所述的基于项目自动构造的流程实现方法,其特征在于,产品文件包括程序集、网页文件、css文件、项目文件、配置文件。
6.如权利要求1所述的基于项目自动构造的流程实现方法,其特征在于,步骤五中的程序集文件就是一个项目编译后生成的程序运行所需dll文件和可执行程序文件。
7.如权利要求1所述的基于项目自动构造的流程实现方法,其特征在于,步骤七中的规范性审查是为了保证代码质量得到持续改进。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103219089A CN102368216B (zh) | 2011-10-20 | 2011-10-20 | 一种基于项目自动构造的流程实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103219089A CN102368216B (zh) | 2011-10-20 | 2011-10-20 | 一种基于项目自动构造的流程实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102368216A true CN102368216A (zh) | 2012-03-07 |
CN102368216B CN102368216B (zh) | 2013-11-27 |
Family
ID=45760781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011103219089A Active CN102368216B (zh) | 2011-10-20 | 2011-10-20 | 一种基于项目自动构造的流程实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102368216B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077038A (zh) * | 2013-01-31 | 2013-05-01 | 北京金和软件股份有限公司 | 动态生成和编译.net项目的方法 |
CN103984558A (zh) * | 2014-05-30 | 2014-08-13 | 深圳市中兴移动通信有限公司 | 一种Web项目的自动构建装置及方法 |
CN105224358A (zh) * | 2015-09-07 | 2016-01-06 | 浪潮集团有限公司 | 一种云计算下软件自动打包部署的系统及方法 |
CN105893260A (zh) * | 2016-03-31 | 2016-08-24 | 上海携程商务有限公司 | 呼叫中心的自动化发布系统和方法 |
CN107193615A (zh) * | 2017-06-29 | 2017-09-22 | 北京全域医疗技术有限公司 | 项目代码信息的更新部署方法及装置 |
CN107544777A (zh) * | 2016-06-29 | 2018-01-05 | 百度在线网络技术(北京)有限公司 | 用于集成开发环境的工作空间控制方法和装置 |
CN109388390A (zh) * | 2018-08-23 | 2019-02-26 | 深圳点猫科技有限公司 | 一种小程序预览码生成方法、设备及存储介质 |
CN109656563A (zh) * | 2018-11-28 | 2019-04-19 | 北京旷视科技有限公司 | 代码审查方法、装置、系统和存储介质 |
CN109918151A (zh) * | 2019-03-14 | 2019-06-21 | 佳都新太科技股份有限公司 | 工作流实现方法、装置、设备及存储介质 |
CN110244950A (zh) * | 2018-03-07 | 2019-09-17 | 深圳芯承电子科技有限公司 | 一种嵌入式汇编程序生成设备和方法 |
CN111338643A (zh) * | 2020-02-26 | 2020-06-26 | 北京思特奇信息技术股份有限公司 | 一种跨主机跨网络同步代码的方法和系统 |
CN112148311A (zh) * | 2020-08-21 | 2020-12-29 | 成都飞机工业(集团)有限责任公司 | 一种基于Jenkins的分布式应用程序自动部署方法 |
CN113268288A (zh) * | 2021-07-19 | 2021-08-17 | 天聚地合(苏州)数据股份有限公司 | 一种共用文件配置方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1647033A (zh) * | 2002-04-02 | 2005-07-27 | 西门子公司 | 自动生成自动化软件的装置和方法 |
CN1932766A (zh) * | 2006-10-12 | 2007-03-21 | 上海交通大学 | 面向串行程序代码量大的领域的半自动并行化方法 |
CN101256492A (zh) * | 2008-03-31 | 2008-09-03 | 宋乃辉 | 一种进行模型驱动架构的软件开发方法及其系统 |
-
2011
- 2011-10-20 CN CN2011103219089A patent/CN102368216B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1647033A (zh) * | 2002-04-02 | 2005-07-27 | 西门子公司 | 自动生成自动化软件的装置和方法 |
CN1932766A (zh) * | 2006-10-12 | 2007-03-21 | 上海交通大学 | 面向串行程序代码量大的领域的半自动并行化方法 |
CN101256492A (zh) * | 2008-03-31 | 2008-09-03 | 宋乃辉 | 一种进行模型驱动架构的软件开发方法及其系统 |
Non-Patent Citations (3)
Title |
---|
王建平等: "配置管理工具TFS的应用研究", 《机械工程与自动化》, 15 December 2010 (2010-12-15), pages 37 - 38 * |
王明等: "基于VSTS实现软件开发生命周期管理", 《计算机与网络》, 26 February 2008 (2008-02-26), pages 108 - 110 * |
闫振兴等: "软件缺陷度量与软件过程管理方法研究", 《计算机与数字工程》, vol. 38, no. 8, 31 August 2010 (2010-08-31), pages 172 - 174 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077038A (zh) * | 2013-01-31 | 2013-05-01 | 北京金和软件股份有限公司 | 动态生成和编译.net项目的方法 |
CN103077038B (zh) * | 2013-01-31 | 2016-03-30 | 北京金和软件股份有限公司 | 动态生成和编译.net项目的方法 |
CN103984558A (zh) * | 2014-05-30 | 2014-08-13 | 深圳市中兴移动通信有限公司 | 一种Web项目的自动构建装置及方法 |
CN105224358A (zh) * | 2015-09-07 | 2016-01-06 | 浪潮集团有限公司 | 一种云计算下软件自动打包部署的系统及方法 |
CN105893260A (zh) * | 2016-03-31 | 2016-08-24 | 上海携程商务有限公司 | 呼叫中心的自动化发布系统和方法 |
CN107544777B (zh) * | 2016-06-29 | 2020-12-25 | 上海优扬新媒信息技术有限公司 | 用于集成开发环境的工作空间控制方法和装置 |
CN107544777A (zh) * | 2016-06-29 | 2018-01-05 | 百度在线网络技术(北京)有限公司 | 用于集成开发环境的工作空间控制方法和装置 |
CN107193615A (zh) * | 2017-06-29 | 2017-09-22 | 北京全域医疗技术有限公司 | 项目代码信息的更新部署方法及装置 |
CN110244950A (zh) * | 2018-03-07 | 2019-09-17 | 深圳芯承电子科技有限公司 | 一种嵌入式汇编程序生成设备和方法 |
CN110244950B (zh) * | 2018-03-07 | 2023-05-30 | 深圳芯承电子科技有限公司 | 一种嵌入式汇编程序生成设备和方法 |
CN109388390A (zh) * | 2018-08-23 | 2019-02-26 | 深圳点猫科技有限公司 | 一种小程序预览码生成方法、设备及存储介质 |
CN109656563A (zh) * | 2018-11-28 | 2019-04-19 | 北京旷视科技有限公司 | 代码审查方法、装置、系统和存储介质 |
CN109918151A (zh) * | 2019-03-14 | 2019-06-21 | 佳都新太科技股份有限公司 | 工作流实现方法、装置、设备及存储介质 |
CN111338643A (zh) * | 2020-02-26 | 2020-06-26 | 北京思特奇信息技术股份有限公司 | 一种跨主机跨网络同步代码的方法和系统 |
CN112148311A (zh) * | 2020-08-21 | 2020-12-29 | 成都飞机工业(集团)有限责任公司 | 一种基于Jenkins的分布式应用程序自动部署方法 |
CN113268288A (zh) * | 2021-07-19 | 2021-08-17 | 天聚地合(苏州)数据股份有限公司 | 一种共用文件配置方法及装置 |
CN113268288B (zh) * | 2021-07-19 | 2022-06-03 | 天聚地合(苏州)数据股份有限公司 | 一种共用文件配置方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102368216B (zh) | 2013-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102368216B (zh) | 一种基于项目自动构造的流程实现方法 | |
US11243516B2 (en) | Edge devices and associated networks utilising microservices | |
Jayasinghe et al. | Expertus: A generator approach to automate performance testing in iaas clouds | |
CN103995781A (zh) | 一种基于模型的构件测试用例生成方法 | |
CN105138386A (zh) | 基于Jenkins与vManager的逻辑设计验证持续集成平台 | |
CN104965735A (zh) | 用于生成升级sql脚本的装置 | |
US8701079B2 (en) | Procedure and development environment for generation of an executable overall control program | |
WO2017000429A1 (zh) | 一种软件自动化测试方法及装置 | |
CN105354036A (zh) | 数据库操作代码生成方法及装置 | |
Sabetzadeh et al. | Using SysML for modeling of safety-critical software-hardware interfaces: Guidelines and industry experience | |
CN104572238A (zh) | 一种高效的生成可执行软件包的方法及系统 | |
CN106371868A (zh) | 一种自动化测试方法、系统及测试机器 | |
CN105117335A (zh) | 一种用于软件单元的自动化验证及回归测试方法 | |
CN103197927B (zh) | 一种柔性工作流的实现方法及其系统 | |
CN105045601A (zh) | 一种基于云平台的产品发布及部署系统 | |
CN102708051A (zh) | 程序持续集成的方法及系统 | |
FI128995B (en) | Grouping of objects in computer-aided modeling | |
CN103645888A (zh) | 一种自动构建操作系统的系统及方法 | |
CN103605526A (zh) | 一种基于责任链模式的模版组件化生成代码的方法 | |
CN113254054B (zh) | 一种智能合约一站式开发系统及方法 | |
CN106484452B (zh) | 一种软件平台的统一配置管理方法和装置 | |
Hryszko et al. | Bottlenecks in software defect prediction implementation in industrial projects | |
CN106843822B (zh) | 一种执行代码生成方法及设备 | |
CN114270282A (zh) | 用于产生整体数字孪生的系统 | |
US20150033213A1 (en) | Compiling method, storage medium and compiling apparatus |
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 |