CN108196825A - 软件项目的构建方法及*** - Google Patents
软件项目的构建方法及*** Download PDFInfo
- Publication number
- CN108196825A CN108196825A CN201711461711.9A CN201711461711A CN108196825A CN 108196825 A CN108196825 A CN 108196825A CN 201711461711 A CN201711461711 A CN 201711461711A CN 108196825 A CN108196825 A CN 108196825A
- Authority
- CN
- China
- Prior art keywords
- module
- triggering command
- project
- frame
- task
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例涉及一种软件项目的构建方法及***,包括:获取项目框架的构建指令;根据所述构建指令构建项目框架;其中,所述项目框架包括多个属性文件;对所述多个属性文件进行探测;在探测到对所述属性文件的修改操作的情况下,根据所述修改操作生成触发指令;发送所述触发指令至持续集成模块,以使所述持续集成模块根据所述触发指令对软件项目进行编译任务、校验任务、和部署任务中的一项或者多项任务的更新。根据本发明实施例的软件项目的构建方法及***能够快速创建项目框架,并完成软件项目的自动编译、校验、部署等,实现软件项目的规范化、快捷、简单的管理。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种项目软件项目的构建方法及***。
背景技术
随着程序设计语言的发展,软件的开发由个体手工坊的封闭式生产,逐渐发展成为产业化、流水线式的工业化生产。为了适应上述发展,产生了各种各样的代码生成框架,使用上述代码生成框架可以生成相应语言的程序代码结构。
以Java程序语言为例,Java程序语言对应不同的代码生成框架,举例来说,包括:rapid-generatora、JunJava、XDoclet AutoCoder等框架。由于代码生成框架种类多,在开发软件项目时,容易出现程序语言混搭,代码结构凌乱、文件目录的设置及单元测试的生成缺失或者错误的问题,因此缺乏统一的、规范化的管理。
发明内容
有鉴于此,本发明提出了一种软件项目的构建方法及***,以快速创建项目框架,完成软件项目的自动编译、校验、部署等,实现软件项目的规范化、快捷、简单的管理。
在第一方面,本发明提供了一种软件项目的构建方法,所述方法包括:
获取项目框架的构建指令;
根据所述构建指令构建项目框架;其中,所述项目框架包括多个属性文件;
对所述多个属性文件进行探测;
在探测到对所述属性文件的修改操作的情况下,根据所述修改操作生成触发指令;
发送所述触发指令至持续集成模块,以使所述持续集成模块根据所述触发指令对软件项目进行编译任务、校验任务、和部署任务中的一项或者多项任务的更新。
结合第一方面,在第一种可能的实现方式中,所述根据所述修改操作生成触发指令,包括:
确定所述修改操作的修改操作类型;
根据所述修改操作类型生成对应的触发指令。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述修改操作为对持续集成模块的校验规则的更新;
所述根据所述修改操作类型生成对应的触发指令,包括:
获取所述更新后的持续集成模块的校验规则;
根据所述更新后的所述持续集成模块的校验规则生成第一触发指令,以使所述持续集成模块根据所述第一触发指令对检验任务的校验规则进行修改。
结合第一方面的第一种可能的实现方式,在第三种可能的实现方式中,所述修改操作为对部署参数的更新;
所述根据所述修改操作类型生成对应的触发指令,包括:
获取所述更新后持续集成模块的部署参数;
根据更新后的所述部署参数生成第二触发指令,以使所述持续集成模块根据所述第二触发指令对部署任务的部署参数进行修改。
结合第一方面的第一种可能的实现方式,在第四种可能的实现方式中,所述修改操作为对项目的编译环境的修改,所述根据所述修改操作类型生成对应的触发指令,包括:
获取所述更新后的编译环境;
根据所述更新后的编译环境生成第三触发指令,以使所述持续集成模块根据所述第三触发指令对编译任务的编译环境进行修改。
结合第一方面的第一种可能的实现方式,在第五种可能的实现方式中,所述修改操作为对软件项目的目录结构的变更;所述方法还包括:
获取变更后的所述软件项目的目录结构;
根据所述目录结构更新所述软件项目的目录结构。
结合第一方面,在第六种可能的实现方式中,所述构建指令包括项目类型及框架类型;
所述根据所述构建指令构建项目框架,包括:
确定是否支持所述项目类型;
在支持所述项目类型的情况下,确定所述框架类型对应的框架;
确定所述框架对应的依赖;
根据所述框架及所述依赖构建所述项目框架。
在第二方面,本发明提供了一种软件项目的构建***,所述***包括:
第一获取模块,用于获取项目框架的构建指令;
构建模块,用于根据所述构建指令构建项目框架;其中,所述项目框架包括多个属性文件;
探测模块,用于对所述多个属性文件进行探测;
生成模块,用于在探测到对所述属性文件的修改操作的情况下,根据所述修改操作生成触发指令;
发送模块,用于发送所述触发指令至持续集成模块,以使所述持续集成模块根据所述触发指令对软件项目进行编译任务、校验任务、和部署任务中的一项或者多项任务的更新。
结合第二方面,在第一种可能的实现方式中,所述生成模块包括:
第一确定子模块,用于确定所述修改操作的修改操作类型;
生成子模块,用于根据所述修改操作类型生成对应的触发指令。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述修改操作为对持续集成模块的校验规则的更新;
所述生成子模块,还用于:
获取所述更新后的持续集成模块的校验规则;
根据所述更新后的所述持续集成模块的校验规则生成第一触发指令,以使所述持续集成模块根据所述第一触发指令对检验任务的校验规则进行修改。
结合第二方面的第一种可能的实现方式,在第三种可能的实现方式中,所述修改操作为对部署参数的更新;
所述生成子模块,还用于:
获取所述更新后持续集成模块的部署参数;
根据更新后的所述部署参数生成第二触发指令,以使所述持续集成模块根据所述第二触发指令对部署任务的部署参数进行修改。
结合第二方面的第一种可能的实现方式,在第四种可能的实现方式中,所述修改操作为对项目的编译环境的修改;
所述生成子模块,还用于:
获取所述更新后的编译环境;
根据所述更新后的编译环境生成第三触发指令,以使所述持续集成模块根据所述第三触发指令对编译任务的编译环境进行修改。
结合第二方面的第一种可能的实现方式,在第五种可能的实现方式中,所述修改操作为对软件项目的目录结构的变更;所述***还包括:
第二获取模块,用于获取变更后的所述软件项目的目录结构;
更新模块,用于根据所述目录结构更新所述软件项目的目录结构。
结合第二方面,在第六种可能的实现方式中,所述构建指令包括项目类型及框架类型;
所述构建模块,包括:
第二确定子模块,用于确定是否支持所述项目类型;
第三确定子模块,用于在支持所述项目类型的情况下,确定所述框架类型对应的框架;
第四确定子模块,用于确定所述框架对应的依赖;
构建子模块,用于根据所述框架及所述依赖构建所述项目框架。
这样一来,终端设备可以根据项目框架的构建指令构建项目框架,并对项目框架中的多个属性文件进行探测,在探测到属性文件的修改操作的情况下,根据修改生成触发指令,并发送触发指令至持续集成模块,以使持续集成模块根据触发指令对项目进行编译任务、校验任务、和部署任务中的一项或者多项任务的更新。根据本发明实施例提供的软件项目的构建方法及***可以快速创建项目框架,并完成软件项目的自动编译、校验、部署等,可以实现软件项目的规范化、快捷、简单的管理。
根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。
图1示出根据本发明一实施例的软件项目的构建方法的流程图。
图2示出根据本发明一示例性的软件项目的构建方法的流程图。
图3示出根据本发明一实施例的软件项目的构建方法的流程图。
图4示出根据本发明一示例性的软件项目的构建方法的流程图。
图5示出根据本发明一实施例的软件项目的构建***的结构框图。
图6示出根据本发明一实施例的软件项目的构建***的结构框图。
图7是根据一示例性实施例示出的一种软件项目的构建装置的硬件结构框图。
具体实施方式
以下将参考附图详细说明本发明的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。
图1示出根据本发明一实施例的软件项目的构建方法的流程图,可以应用于搭载了软件项目构建***的终端设备。如图1所示,该方法包括以下步骤。
步骤101、获取项目框架的构建指令。
上述构建指令为指示终端设备生成软件项目的指令。举例来说,该构建指令包括项目类型及框架类型,用于指示终端设备根据该项目类型及框架类型生成软件项目。
在一个例子中,用户可以通过命令行输入构建指令。相应的,终端设备可以获取用户通过命令行输入的构建指令;或者,终端设备可以在显示设备的显示界面上提供项目类型的选项,响应于用户对项目类型的选项的触发操作,进一步的提供框架类型的选项,并响应于用户对框架类型的选项的触发操作,获取对应的构建指令。
步骤102、根据所述构建指令构建项目框架。
终端设备根据上述构建指令确定对应的项目框架,并完成该项目框架的初始化构建。其中,所述项目框架包括多个属性文件。
举例来说,终端设备可以根据上述构建指令创建多个项目所需的属性文件,例如:记录校验规则的文件、记录部署参数的文件、记录编译环境的文件、记录目录结构的文件等等属性文件。
步骤103、对所述多个属性文件进行探测。
步骤104、在探测到对所述属性文件的修改操作的情况下,根据所述修改操作生成触发指令。
终端设备对多个属性文件进行探测,在探测到属性文件的修改操作的情况下,可以根据修改操作生成对应的触发指令。
举例来说,终端设备可以通过安装的Grunt插件以及Grunt-contrib-watch插件对指定属性文件的路径进行监听探测。
在一种可能的实现方式中,上述根据所述修改操作生成触发指令,可以包括以下步骤:
确定所述修改操作的修改操作类型;
根据所述修改操作类型生成对应的触发指令。
举例来说,上述修改操作可以包括对记录校验规则的文件、记录部署参数的文件、记录编译环境的文件、记录目录结构的文件的修改等。其中,当修改操作是对记录校验规则的文件的修改时,该修改操作的修改操作类型为对持续集成模块的校验规则的更新;当修改操作是对记录部署参数的文件的修改时,该修改操作的修改操作类型为对部署参数的更新;当修改操作是对记录编译环境的文件的修改时,该修改操作的修改操作类型为对项目的编译环境的修改。
终端设备根据不同的修改操作生成不同的触发指令,以指示持续集成模块能够根据触发指令执行任务(包括编译任务、校验任务及部署任务)的更新。
步骤105、发送所述触发指令至持续集成模块,以使所述持续集成模块根据所述触发指令对软件项目进行编译任务、校验任务、和部署任务中的一项或者多项任务的更新。
终端设备发送上述触发指令至持续集成模块。其中,持续集成模块也是软件项目构建***中的一个功能模块。持续集成模块根据上述触发指令执行对应的编译任务、校验任务、和部署任务中的一项或者多项任务的更新。
这样一来,终端设备根据项目框架的构建指令构建项目框架,并对项目框架中的多个属性文件进行探测,在探测到属性文件的修改操作的情况下,根据修改操作生成触发指令,并发送触发指令至持续集成模块,以使持续集成模块根据触发指令对项目进行编译任务、校验任务、和部署任务中的一项或者多项任务的更新。
根据本发明实施例提供的软件项目的构建方法可以快速创建项目框架,并完成项目的自动编译、校验、部署等,可以实现项目的规范化、快捷、简单的管理。
图2示出根据本发明一示例性的软件项目的构建方法的流程图。
在一种可能的实现方式中,参照图2,上述修改操作类型为对持续集成模块的校验规则的更新;则所述根据所述修改操作类型生成对应的触发指令,可以包括以下步骤:
获取所述更新后的持续集成模块的校验规则;
根据所述更新后的所述持续集成模块的校验规则生成第一触发指令,以使所述持续集成模块根据所述第一触发指令对检验任务的校验规则进行修改。
终端设备在探测到记录校验规则的文件发生修改时,从记录校验规则的文件中获取更新后的持续集成模块的校验规则,并根据该更新后的持续集成模块的校验规则生成第一触发指令,该第一触发指令中包括上述更新后的持续集成模块的校验规则。持续集成模块接收该第一触发指令后,修改校验任务的校验规则为上述更新后的持续集成模块的校验规则。持续集成模块可以根据更新后的校验规则对软件项目进行校验。
在一种可能的实现方式中,参照图2,上述修改操作类型为对部署参数的更新;上述根据所述修改操作类型生成对应的触发指令,可以包括以下步骤:
获取所述更新后持续集成模块的部署参数;
根据更新后的所述部署参数生成第二触发指令,以使所述持续集成模块根据所述第二触发指令对部署任务的部署参数进行修改。
终端设备在探测到记录部署参数的文件发生修改时,从记录部署参数的文件中获取更新后的部署参数,并根据该更新后的部署参数生成第二触发指令,该第二触发指令中包括上述更新后的部署参数。持续集成模块接收该第二触发指令后,修改部署任务的部署参数为上述更新后的部署参数。持续集成模块根据更新后的部署参数对软件项目进行部署。
举例来说,用户在记录部署参数的文件中将部署时间由每天10点部署更新为每天12点部署,***在检测到该修改时,可以获取更新后的部署参数,并根据该部署参数生成第二触发指令,以使得持续集成模块接收第二触发指令后,将部署时间由每天10点部署更新为每天12点部署。
在一种可能的实现方式中,参照图2,上述修改操作类型为对项目的编译环境的修改,所述根据所述修改操作类型生成对应的触发指令,包括:
获取所述更新后的编译环境;
根据所述更新后的编译环境生成第三触发指令,以使所述持续集成模块根据所述第三触发指令对编译任务的编译环境进行修改。
终端设备在探测到记录编译环境的文件发生修改时,从记录编译环境的文件中获取更新后的编译环境,并根据该更新后的编译环境生成第三触发指令,该第三触发指令中包括上述更新后的编译环境。持续集成模块接收该第三触发指令后,修改编译任务的编译环境为上述更新后的编译环境。持续集成模块根据更新后的编译环境对软件项目进行编译。
在一种可能的实现方式中,上述修改操作类型可以为对软件项目的目录结构的变更;所述方法还可以包括以下步骤:
获取变更后的所述软件项目的目录结构;
根据所述目录结构更新所述软件项目的目录结构。
终端设备在探测到记录软件项目的目录结构的文件发生修改时,从记录软件项目的目录结构的文件中获取更新后的软件项目的目录结构,并可以根据该更新后的目录结构更新软件项目的目录结构。上述修改操作可以为对目录结构的增加操作或者删除操作,***可以根据上述修改为项目框架增加或者删除对应的属性文件。
图3示出根据本发明一实施例的软件项目的构建方法的流程图,其中,图3中步骤301、步骤306至步骤308与前述实施例中步骤101、步骤103至步骤105相同,本发明实施例在此不再赘述。
在一种可能的实现方式中,上述构建指令可以包括:项目类型及框架类型,上述方法可以包括以下步骤:
步骤301、获取项目框架的构建指令。
步骤302、确定是否支持所述项目类型。
终端设备可以支持多种项目类型,例如:java项目(SSH框架Struts-Spring-Hibernate、SSM框架SpringMVC-Spring-Mybatis、Web框架SSH-AngularJS、SSM-EmberJS、SSM-AngularJS、SSM-Angular4、SSM-Freemarker),在接收到项目框架的构建指令时,可以确定是否支持构建指令包括的项目类型,在不支持构建指令包括的项目类型时,可以生成提示信息,以提示用户***不支持该项目类型。
步骤303、在支持所述项目类型的情况下,确定所述框架类型对应的框架。
在支持构建指令包括的项目类型时,终端设备可以根据项目类型确定对应的框架类型,并在显示设备的显示界面上显示上述框架类型选项,以向用户提供框架类型对应的选项。
终端设备响应于用户对框架类型对应的选项的选择操作,确定对应的框架类型。终端设备在确定框架后,可以去框架模板库中获取该框架对应的框架模板。
举例来说,本发明实施例中可以联合JavaDoc的模板生成符合用户使用规则的项目模板。其中,上框架模块库为用于存储框架模板的数据库或者文件夹。
步骤304、确定所述框架对应的依赖。
举例来说,终端设备可以根据框架从依赖库中确定并获取对应的依赖,其中,依赖库为用于存储框架与其所对应的依赖的对应关系的数据库或者文件夹。
或者,终端设备可以获取依赖指示信息,该依赖指示信息可以为用户通过命令行等方式输入的信息,该依赖指示信息中可以包括框架对应的依赖,终端设备可以响应于上述依赖指示信息确定并获取框架对应的依赖。
示例性的,本发明实施例中可以预先进行各框架类型对应的框架的依赖整理,确定各框架对应的依赖,并以此作为包存储到面向文档的数据管理***CouchDB中,以在构建项目框架时,终端设备可以快速索引加载关联的依赖到用户构建的项目框架中。
步骤305、根据所述框架及所述依赖构建所述项目框架。
持续集成模块可以根据框架模块和对应的依赖,进行校验、编译和部署,以构建项目框架。
步骤306、对所述多个属性文件进行探测。
步骤307、在探测到对所述属性文件的修改操作的情况下,根据所述修改操作生成触发指令。
步骤308、发送所述触发指令至持续集成模块,以使所述持续集成模块根据所述触发指令对软件项目进行编译任务、校验任务、和部署任务中的一项或者多项任务的更新。
本发明实施例中,终端设备可以根据用户需要,脚本化生成控制层、服务层、持久层代码,并根据当前使用的框架选择性集成相应的代码自动生成工具,调用底层的构建命令,自动化构建项目。
本发明实施例还可以在构建项目框架时,默认联合配置文件和Ant配置输出JavaDoc说明文档及执行代码检查工作;联合配置文件和Jekins持续化集成,以减少琐碎的配置时间。
其中,上述配置文件主要描述项目相关信息,代码审查规则的文件的路径、持续集成模块的触发条件和运行时间、持续集成模块运行任务列表等,Ant配置主要定义任务和任务执行程序,使用watch插件进行监听后,可以调用Ant的任务进行任务分发。
示例性的,本发明实施例中,可以通过交互式方式向用户推荐使用Java语言,也可以推荐使用Python、Ruby。本发明实施例中可以采用面向文档的数据管理***CouchDB进行框架、框架的配置、及相关的依赖的存储,例如:将当前JAVA常用框架如Spring Sercutity、Spring Data、Spring MVC、Struts、Struts2、Log4j、JSON、Hibernate等主流框架的配置进行CouchDB存档,通过命令行式交互式编程,获取当前用户所需要使用的框架完成项目对象模型Maven项目构建及框架的初始化构建。并在项目的初始化构建过程中,完成对文件目录结构的梳理。并可以通过交互式方式确定当前用户代码版本控制***是属于SVN还是Git,并生成相应的忽略文件。还可以去除构建时的配置化文件。
示例性的,本发明实施例还可以在项目框架构建时根据当前集成的框架生成框架性代码和测试性代码,代码头部保持:描述信息、作者、时间基本的符合JavaDoc规范的模板注释,其中,具体的作者可以从项目配置文件中读取,时间可以取当前时间并按格式输出。
本发明实施例中可以根据项目配置文件中用于确定是否进行测试代码的生成开关的状态判断自动化构建项目框架的后续操作(例如:是否进行持续集成)。
本发明实施例还可以构建一套工作流程,进行开发环境的校验、检测等。
这样一来,终端设备可以根据项目框架的构建指令构建项目框架,并对项目框架中的多个属性文件进行探测,在探测到属性文件的修改操作的情况下,根据修改生成触发指令,并发送触发指令至持续集成模块,以使持续集成模块根据触发指令对项目进行编译任务、校验任务、和部署任务中的一项或者多项任务的更新。根据本发明实施例提供的软件项目的构建方法及***可以快速创建项目框架,并完成软件项目的自动编译、校验、部署等,可以实现软件项目的规范化、快捷、简单的管理。
图4示出根据本发明一示例性的软件项目的构建方法的流程图。
步骤401、获取用户输入的待构建的项目类型。
步骤402、确定当前是否支持上述项目类型。
步骤403、在支持上述项目类型时,获取该项目类型对应的所有框架类型,并显示对应框架类型的选项。
步骤404、响应于用户对框架类型的选项的触发,确定该选项对应的框架。
步骤405、获取上述框架对应的依赖,并根据框架及依赖创建软件项目对应的属性文件。
步骤406、自动化对属性文件进行探测,在探测到属性文件的修改操作时,根据该修改操作生成对应的触发指令。
步骤407、发送触发指令至持续集成模块,以使持续集成模块根据上述触发指令进行校验、编译、及部署任务的更新。
相应地,图5示出根据本发明一实施例的软件项目的构建***的结构框图。如图5所示,该***可以包括:第一获取模块501、构建模块502、探测模块503、生成模块504及发送模块505;其中,
第一获取模块501,可以用于获取项目框架的构建指令;
构建模块502,可以用于根据所述构建指令构建项目框架;其中,所述项目框架包括多个属性文件;
探测模块503,可以用于对所述多个属性文件进行探测;
生成模块504,可以用于在探测到对所述属性文件的修改操作的情况下,根据所述修改操作生成触发指令;
发送模块505,可以用于发送所述触发指令至持续集成模块,以使所述持续集成模块根据所述触发指令对软件项目进行编译任务、校验任务、和部署任务中的一项或者多项任务的更新。
相应地,图6示出根据本发明一实施例的软件项目的构建***的结构框图,本发明实施例中,该装置可以包括:第一获取模块601、构建模块602、探测模块603、生成模块604及发送模块605。其中,上述第一获取模块601、构建模块602、探测模块603、生成模块604及发送模块605与前述第一获取模块501、构建模块502、探测模块503、生成模块504及发送模块505相类似,本发明实施例在此不再赘述。
在一种可能的实现方式中,参照图6,上述生成模块604可以包括:
第一确定子模块6041,可以用于确定所述修改操作的修改操作类型;
生成子模块6042,可以用于根据所述修改操作类型生成对应的触发指令。
在一种可能的实现方式中,参照图6,所述修改操作为对持续集成模块的校验规则的更新;所述生成子模块6042,还可以用于:
获取所述更新后的持续集成模块的校验规则;
根据所述更新后的所述持续集成模块的校验规则生成第一触发指令,以使所述持续集成模块根据所述第一触发指令对检验任务的校验规则进行修改。
在一种可能的实现方式中,参照图6,所述修改操作为对部署参数的更新;所述生成子模块6042,还可以用于:
获取所述更新后持续集成模块的部署参数;
根据更新后的所述部署参数生成第二触发指令,以使所述持续集成模块根据所述第二触发指令对部署任务的部署参数进行修改。
在一种可能的实现方式中,参照图6,所述修改操作为对项目的编译环境的修改;
所述生成子模块6042,还可以用于:
获取所述更新后的编译环境;
根据所述更新后的编译环境生成第三触发指令,以使所述持续集成模块根据所述第三触发指令对编译任务的编译环境进行修改。
在一种可能的实现方式中,参照图6,所述修改操作为对软件项目的目录结构的变更;上述***还可以包括:
第二获取模块606,可以用于获取变更后的所述软件项目的目录结构;
更新模块607,可以用于根据所述目录结构更新所述软件项目的目录结构。
在一种可能的实现方式中,参照图6,所述构建指令包括项目类型及框架类型;所述构建模块602,可以包括:
第二确定子模块6021,可以用于确定是否支持所述项目类型;
第三确定子模块6022,可以用于在支持所述项目类型的情况下,确定所述框架类型对应的框架;
第四确定子模块6023,可以用于确定所述框架对应的依赖;
构建子模块6024,可以用于根据所述框架及所述依赖构建所述项目框架。
终端设备可以根据项目框架的构建指令构建项目框架,并对项目框架中的多个属性文件进行探测,在探测到属性文件的修改操作的情况下,根据修改生成触发指令,并发送触发指令至持续集成模块,以使持续集成模块根据触发指令对项目进行编译任务、校验任务、和部署任务中的一项或者多项任务的更新。根据本发明实施例提供的软件项目的构建方法及***可以快速创建项目框架,并完成软件项目的自动编译、校验、部署等,可以实现软件项目的规范化、快捷、简单的管理。
相应地,图7是根据一示例性实施例示出的一种软件项目的构建装置的硬件结构框图。在实际应用中,该装置可通过服务器实现。参照图7,该装置700可包括处理器701、存储有机器可执行指令的机器可读存储介质702。处理器701与机器可读存储介质702可经由***总线703通信。并且,处理器701通过读取机器可读存储介质702中与数据处理方法逻辑对应的机器可执行指令以执行上文所述的软件项目的构建方法。
本文中提到的机器可读存储介质702可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:随机存取存储器(英文:Radom Access Memory,简称:RAM)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (14)
1.一种软件项目的构建方法,其特征在于,所述方法包括:
获取项目框架的构建指令;
根据所述构建指令构建项目框架;其中,所述项目框架包括多个属性文件;
对所述多个属性文件进行探测;
在探测到对所述属性文件的修改操作的情况下,根据所述修改操作生成触发指令;
发送所述触发指令至持续集成模块,以使所述持续集成模块根据所述触发指令对软件项目进行编译任务、校验任务、和部署任务中的一项或者多项任务的更新。
2.根据权利要求1所述的方法,其特征在于,所述根据所述修改操作生成触发指令,包括:
确定所述修改操作的修改操作类型;
根据所述修改操作类型生成对应的触发指令。
3.根据权利要求2所述的方法,其特征在于,所述修改操作为对持续集成模块的校验规则的更新;
所述根据所述修改操作类型生成对应的触发指令,包括:
获取所述更新后的持续集成模块的校验规则;
根据所述更新后的所述持续集成模块的校验规则生成第一触发指令,以使所述持续集成模块根据所述第一触发指令对检验任务的校验规则进行修改。
4.根据权利要求2所述的方法,其特征在于,所述修改操作为对部署参数的更新;
所述根据所述修改操作类型生成对应的触发指令,包括:
获取所述更新后持续集成模块的部署参数;
根据更新后的所述部署参数生成第二触发指令,以使所述持续集成模块根据所述第二触发指令对部署任务的部署参数进行修改。
5.根据权利要求2所述的方法,其特征在于,所述修改操作为对项目的编译环境的修改,所述根据所述修改操作类型生成对应的触发指令,包括:
获取所述更新后的编译环境;
根据所述更新后的编译环境生成第三触发指令,以使所述持续集成模块根据所述第三触发指令对编译任务的编译环境进行修改。
6.根据权利要求2所述的方法,其特征在于,所述修改操作为对软件项目的目录结构的变更;所述方法还包括:
获取变更后的所述软件项目的目录结构;
根据所述目录结构更新所述软件项目的目录结构。
7.根据权利要求1所述的方法,其特征在于,所述构建指令包括项目类型及框架类型;
所述根据所述构建指令构建项目框架,包括:
确定是否支持所述项目类型;
在支持所述项目类型的情况下,确定所述框架类型对应的框架;
确定所述框架对应的依赖;
根据所述框架及所述依赖构建所述项目框架。
8.一种软件项目的构建***,其特征在于,所述***包括:
第一获取模块,用于获取项目框架的构建指令;
构建模块,用于根据所述构建指令构建项目框架;其中,所述项目框架包括多个属性文件;
探测模块,用于对所述多个属性文件进行探测;
生成模块,用于在探测到对所述属性文件的修改操作的情况下,根据所述修改操作生成触发指令;
发送模块,用于发送所述触发指令至持续集成模块,以使所述持续集成模块根据所述触发指令对软件项目进行编译任务、校验任务、和部署任务中的一项或者多项任务的更新。
9.根据权利要求8所述的***,其特征在于,所述生成模块包括:
第一确定子模块,用于确定所述修改操作的修改操作类型;
生成子模块,用于根据所述修改操作类型生成对应的触发指令。
10.根据权利要求9所述的***,其特征在于,所述修改操作为对持续集成模块的校验规则的更新;
所述生成子模块,还用于:
获取所述更新后的持续集成模块的校验规则;
根据所述更新后的所述持续集成模块的校验规则生成第一触发指令,以使所述持续集成模块根据所述第一触发指令对检验任务的校验规则进行修改。
11.根据权利要求9所述的***,其特征在于,所述修改操作为对部署参数的更新;
所述生成子模块,还用于:
获取所述更新后持续集成模块的部署参数;
根据更新后的所述部署参数生成第二触发指令,以使所述持续集成模块根据所述第二触发指令对部署任务的部署参数进行修改。
12.根据权利要求9所述的***,其特征在于,所述修改操作为对项目的编译环境的修改;
所述生成子模块,还用于:
获取所述更新后的编译环境;
根据所述更新后的编译环境生成第三触发指令,以使所述持续集成模块根据所述第三触发指令对编译任务的编译环境进行修改。
13.根据权利要求9所述的***,其特征在于,所述修改操作为对软件项目的目录结构的变更;所述***还包括:
第二获取模块,用于获取变更后的所述软件项目的目录结构;
更新模块,用于根据所述目录结构更新所述软件项目的目录结构。
14.根据权利要求8所述的***,其特征在于,所述构建指令包括项目类型及框架类型;
所述构建模块,包括:
第二确定子模块,用于确定是否支持所述项目类型;
第三确定子模块,用于在支持所述项目类型的情况下,确定所述框架类型对应的框架;
第四确定子模块,用于确定所述框架对应的依赖;
构建子模块,用于根据所述框架及所述依赖构建所述项目框架。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711461711.9A CN108196825A (zh) | 2017-12-28 | 2017-12-28 | 软件项目的构建方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711461711.9A CN108196825A (zh) | 2017-12-28 | 2017-12-28 | 软件项目的构建方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108196825A true CN108196825A (zh) | 2018-06-22 |
Family
ID=62585477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711461711.9A Pending CN108196825A (zh) | 2017-12-28 | 2017-12-28 | 软件项目的构建方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108196825A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108572838A (zh) * | 2018-07-02 | 2018-09-25 | 北京航天数据股份有限公司 | 工业软件的升级方法、装置及*** |
CN109445835A (zh) * | 2018-09-03 | 2019-03-08 | 平安普惠企业管理有限公司 | 构建项目框架的方法、终端设备及计算机可读存储介质 |
CN109460214A (zh) * | 2018-11-06 | 2019-03-12 | 上海航天测控通信研究所 | 基于idef建模的航天器软件结构化方法 |
CN109814854A (zh) * | 2019-01-24 | 2019-05-28 | 平安科技(深圳)有限公司 | 项目框架生成方法、装置、计算机设备和存储介质 |
CN111464552A (zh) * | 2020-04-11 | 2020-07-28 | 北京天地和兴科技有限公司 | 一种基于包过滤规则的防火墙自动化测试*** |
CN111506322A (zh) * | 2020-04-16 | 2020-08-07 | 瑞纳智能设备股份有限公司 | 一种自动化集成构建开发部署平台及方法 |
CN112286580A (zh) * | 2020-10-31 | 2021-01-29 | 成都新潮传媒集团有限公司 | 一种用于处理流水线作业的方法、装置及计算机设备 |
CN113094085A (zh) * | 2021-04-13 | 2021-07-09 | 北京房江湖科技有限公司 | 组件集成方法、装置、计算机可读存储介质及电子设备 |
CN113805877A (zh) * | 2021-09-26 | 2021-12-17 | 工银科技有限公司 | 基于idea插件的项目工程的构建方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060041870A1 (en) * | 2004-08-19 | 2006-02-23 | Microsoft Corporation | Systems and methods for varying software build properties using primary and supplemental build files |
CN105739966A (zh) * | 2016-01-19 | 2016-07-06 | 浪潮软件集团有限公司 | 一种持续集成的方法及装置 |
CN107450933A (zh) * | 2017-08-18 | 2017-12-08 | 郑州云海信息技术有限公司 | 一种软件持续集成方法和*** |
-
2017
- 2017-12-28 CN CN201711461711.9A patent/CN108196825A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060041870A1 (en) * | 2004-08-19 | 2006-02-23 | Microsoft Corporation | Systems and methods for varying software build properties using primary and supplemental build files |
CN105739966A (zh) * | 2016-01-19 | 2016-07-06 | 浪潮软件集团有限公司 | 一种持续集成的方法及装置 |
CN107450933A (zh) * | 2017-08-18 | 2017-12-08 | 郑州云海信息技术有限公司 | 一种软件持续集成方法和*** |
Non-Patent Citations (2)
Title |
---|
VEGETABLE蔬菜: "GitLab创建新项目", 《GITLAB创建新项目》 * |
寻梦的尕柳: "使用jenkins进行项目的自动构建部署", 《HTTPS://WWW.JIANSHU.COM/P/DCEAA1C7BB49》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108572838A (zh) * | 2018-07-02 | 2018-09-25 | 北京航天数据股份有限公司 | 工业软件的升级方法、装置及*** |
CN109445835A (zh) * | 2018-09-03 | 2019-03-08 | 平安普惠企业管理有限公司 | 构建项目框架的方法、终端设备及计算机可读存储介质 |
CN109460214A (zh) * | 2018-11-06 | 2019-03-12 | 上海航天测控通信研究所 | 基于idef建模的航天器软件结构化方法 |
CN109460214B (zh) * | 2018-11-06 | 2021-07-27 | 上海航天测控通信研究所 | 基于idef建模的航天器软件结构化方法 |
CN109814854A (zh) * | 2019-01-24 | 2019-05-28 | 平安科技(深圳)有限公司 | 项目框架生成方法、装置、计算机设备和存储介质 |
CN109814854B (zh) * | 2019-01-24 | 2024-05-03 | 平安科技(深圳)有限公司 | 项目框架生成方法、装置、计算机设备和存储介质 |
CN111464552B (zh) * | 2020-04-11 | 2022-11-15 | 北京天地和兴科技有限公司 | 一种基于包过滤规则的防火墙自动化测试*** |
CN111464552A (zh) * | 2020-04-11 | 2020-07-28 | 北京天地和兴科技有限公司 | 一种基于包过滤规则的防火墙自动化测试*** |
CN111506322A (zh) * | 2020-04-16 | 2020-08-07 | 瑞纳智能设备股份有限公司 | 一种自动化集成构建开发部署平台及方法 |
CN111506322B (zh) * | 2020-04-16 | 2023-03-14 | 瑞纳智能设备股份有限公司 | 一种自动化集成构建开发部署平台及方法 |
CN112286580A (zh) * | 2020-10-31 | 2021-01-29 | 成都新潮传媒集团有限公司 | 一种用于处理流水线作业的方法、装置及计算机设备 |
CN113094085B (zh) * | 2021-04-13 | 2024-01-19 | 贝壳找房(北京)科技有限公司 | 组件集成方法、装置、计算机可读存储介质及电子设备 |
CN113094085A (zh) * | 2021-04-13 | 2021-07-09 | 北京房江湖科技有限公司 | 组件集成方法、装置、计算机可读存储介质及电子设备 |
CN113805877A (zh) * | 2021-09-26 | 2021-12-17 | 工银科技有限公司 | 基于idea插件的项目工程的构建方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108196825A (zh) | 软件项目的构建方法及*** | |
US11868231B2 (en) | System and method for evaluating code by a hybrid of local and cloud-based computers | |
EP3246818B1 (en) | Functional behaviour test system and method | |
US9021438B2 (en) | Automatic framework for parallel testing on multiple testing environments | |
US8788239B2 (en) | Methods, apparatus and articles of manufacture to test batch configurations | |
US9501596B2 (en) | Graphical design verification environment generator | |
KR102341154B1 (ko) | 모바일 장치들의 원격 구성을 허용하기 위해 모바일 장치들 상에 설치되는 고속 어플리케이션 | |
CN101689111A (zh) | 软件需求验证的自动化管理 | |
US20120116561A1 (en) | Program testing apparatus, method of testing a program, and program testing program | |
US8745727B2 (en) | Graphical user interface tester | |
US11138097B2 (en) | Automated web testing framework for generating and maintaining test scripts | |
US8032232B2 (en) | Natively retaining project documentation in a controller | |
CN103518393A (zh) | 检测移动通信设备内容的***和方法 | |
CN104199767A (zh) | 测试方法和装置 | |
KR20080048454A (ko) | 유한 상태 기계 모델 구축 | |
US11714625B2 (en) | Generating applications for versatile platform deployment | |
Quinton et al. | Evolution in dynamic software product lines | |
CN104823159A (zh) | 用于改变人机界面设备中对象的方法和设备 | |
KR101491848B1 (ko) | 스크립트 유지보수 기능을 갖는 gui 소프트웨어 테스트 자동화 시스템 및 방법 | |
EP4296803A1 (en) | Device configuration object template with user interaction for device properties generator | |
EP3869328A1 (en) | System, device and method for debugging an industrial application | |
CN105493033A (zh) | 声明性配置元素 | |
Pereira et al. | Retrospective and Trends in Requirements Engineering for Embedded Systems: A Systematic Literature Review. | |
US8479152B2 (en) | Representing non-functional requirements (NFRS) in unified modeling language (UML) | |
Alashqar et al. | Requirement Engineering for Non-Functional Requirements |
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 |
Application publication date: 20180622 |
|
RJ01 | Rejection of invention patent application after publication |