CN109800016A - 工程自动部署方法、装置、计算机设备和存储介质 - Google Patents

工程自动部署方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN109800016A
CN109800016A CN201811527201.1A CN201811527201A CN109800016A CN 109800016 A CN109800016 A CN 109800016A CN 201811527201 A CN201811527201 A CN 201811527201A CN 109800016 A CN109800016 A CN 109800016A
Authority
CN
China
Prior art keywords
engineering
packet
file
party
configuration
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
Application number
CN201811527201.1A
Other languages
English (en)
Inventor
吕三
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Puhui Enterprise Management Co Ltd
Original Assignee
Ping An Puhui Enterprise Management Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Puhui Enterprise Management Co Ltd filed Critical Ping An Puhui Enterprise Management Co Ltd
Priority to CN201811527201.1A priority Critical patent/CN109800016A/zh
Publication of CN109800016A publication Critical patent/CN109800016A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明提出的工程自动部署方法、装置、计算机设备和存储介质,其中方法包括:接收用于对当前工程进行部署的部署指令,所述当前工程为当前使用Java应用开发的工程;依据所述部署指令从版本控制系统中获取所述当前工程的源代码文件,并接收配置指令;依据所述配置指令将预设的第三方包写入部署工具的配置文件;依据所述配置文件生成部署任务;根据所述部署任务将所述源代码文件编译并打成工程包,将所述工程包上传到指定服务器主机中,以使得所述服务器主机运行所述工程包以完成工程部署,本方法通过将第三方包自动写入部署工具的配置文件中,从而完成部署,无需手动操作,节省人力,大大地提高效率。

Description

工程自动部署方法、装置、计算机设备和存储介质
技术领域
本发明涉及到数据处理的技术领域,特别是涉及到一种工程自动部署方法、装置、计算机设备和存储介质。
背景技术
在编程语言(如Java)应用开发工程的过程中,当开发人员完成该工程的代码设计,需要将其应用到测试环境或者生产环境中,即对该工程进行部署。目前大多数的工程部署过程均由人工手动操作完成,耗时耗力,或者通过ant(部署工具)完成了自动部署,但是在业内工程部署需要使用第三方包(由已知的函数或方法打成的包)时,把第三方包打成jar包,然后需逐条将第三方包写入部署工具的配置文件中,这样对于不同工程,需要手工改写配置文件,不但过程繁琐容易出错,且效率较低。
发明内容
本发明的主要目的为提供一种提高效率的工程自动部署方法、装置、计算机设备和存储介质。
本发明提出一种工程自动部署方法,包括:
接收用于对当前工程进行部署的部署指令,所述当前工程为当前使用Java应用开发的工程;
依据所述部署指令从版本控制系统中获取所述当前工程的源代码文件,并接收配置指令;
依据所述配置指令将预设的第三方包写入部署工具的配置文件,所述部署工具用于部署所述当前工程,所述第三方包为开发所述当前工程时使用的已知函数的抓包,所述第三方包存储于所述当前工程部署执行时可读的指定位置;
依据所述配置文件生成部署任务;
根据所述部署任务将所述源代码文件编译并打成工程包,将所述工程包上传到服务器主机中,以使得所述服务器主机运行所述工程包以完成工程部署。
进一步地,所述依据所述配置指令将预设的第三方包写入部署工具的配置文件的步骤,包括:
依据所述配置指令从所述指定位置中获取所述第三方包;
将所述第三方包写入所述配置文件中,并在所述配置文件中生成对应所述第三方包的标签,所述标签包含所述第三方包的路径以及名称信息。
进一步地,所述依据所述配置指令将第三方包写入部署工具的配置文件的步骤,包括:
依据所述配置指令读取所述部署工具中模板文件的内容以生成所述配置文件,所述模板文件为预设的可用作配置所述部署任务模板的文件,所述模板文件中设有用于指示所述第三方包当前位置的标识位;
通过所述标识位读取所述第三方包,并将所述第三方包写入所述配置文件中。
进一步地,所述依据所述配置任务将所述源代码文件编译并打成工程包,将所述工程包上传到服务器主机中,以使得所述服务器主机运行所述工程包以完成工程部署的步骤之后,包括:
监测所述第三方包是否发生变更;
若监测到所述第三方包发生变更,则重新读取所述模板文件的内容以生成第一配置文件;
依据所述标识位重新读取变更后的第三方包,并将变更后的第三方包写入所述第一配置文件中。
进一步地,所述依据所述配置任务将所述源代码文件编译并打成工程包,将所述工程包上传到服务器主机中,以使得所述服务器主机运行所述工程包以完成工程部署的步骤之后,包括:
接收用户更改所述模板文件的标识位的更改信息;
依据所述更改信息重新读取更改后的模板文件内容以生成第二配置文件;
依据所述更改后的标识位重新读取所述第三方包,并将所述第三方包写入到所述第二配置文件中。
进一步地,所述依据所述配置任务将所述源代码文件编译并打成工程包,将所述工程包上传到指定服务器主机中的步骤,包括:
监测所述当前工程的类型;
若监测到所述当前工程的类型为web类型,则将所述源代码文件编译并打成war包上传到服务器主机中,并依据所述war包生成第一服务接口,所述第一服务接口用于对外连接并提供访问入口。
进一步地,所述将所述源代码文件编译并打成war包上传到服务器主机中,并依据所述war包生成第一服务接口,所述第一服务接口用于对外连接并提供访问入口的步骤之后,包括:
判断所述源代码文件是否发生变更;
若是,则触发重配命令;
依据所述重配命令重新将所述源代码文件编译并打新的war包,并依据所述新的war包生成第二服务接口,将所述第一服务接口替换成第二服务接口。
本发明还提供一种工程自动部署装置,包括:
接收指令单元,用于接收用于对当前工程进行部署的部署指令,所述当前工程为当前使用Java应用开发的工程;
获取文件单元,用于依据所述部署指令从版本控制系统中获取所述当前工程的源代码文件,并接收配置指令;
写入文件单元,用于依据所述配置指令将预设的第三方包写入部署工具的配置文件,所述部署工具用于部署所述当前工程,所述第三方包为开发所述当前工程时使用的已知函数的抓包,所述第三方包存储于所述当前工程部署执行时可读的指定位置;
生成任务单元,用于依据所述配置文件生成部署任务;
部署工程单元,用于根据所述部署任务将所述源代码文件编译并打成工程包,将所述工程包上传到服务器主机中,以使得所述服务器主机运行所述工程包以完成工程部署。
本发明还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本发明的有益效果为:上述方法通过将第三方包存于指定位置,部署时自动触发配置指令,将第三方包写入部署工具的配置文件,并生成与执行部署任务以完成工程部署,对于不同的工程,不同的第三方包,均可以实现将第三方包自动写入部署工具的配置文件中,无需手动操作,节省人力,大大地提高效率。
附图说明
图1为本发明一实施例中工程自动部署方法的步骤示意图;
图2为本发明一实施例中工程自动部署装置的结构示意框图;
图3为本发明一实施例的计算机设备的结构示意框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,本实施例中的工程自动部署方法,包括:
步骤S1:接收用于对当前工程进行部署的部署指令,所述当前工程为当前使用Java应用开发的工程;
步骤S2:依据所述部署指令从版本控制系统中获取所述当前工程的源代码文件,并接收配置指令;
步骤S3:依据所述配置指令将预设的第三方包写入部署工具的配置文件,所述部署工具用于部署所述当前工程,所述第三方包为开发所述当前工程时使用的已知函数的抓包,所述第三方包存储于所述当前工程部署执行时可读的指定位置;
步骤S4:依据所述配置文件生成部署任务;
步骤S5:根据所述部署任务将所述源代码文件编译并打成工程包,将所述工程包上传到服务器主机中,以使得所述服务器主机运行所述工程包以完成工程部署。
在编程语言(如Java)应用开发过程中,当开发人员完成代码设计,需要将其应用到测试环境或者生产环境中,这一过程即为部署,而开发人员在开发的过程中,会使用已知的函数或方法(代码)来辅助完成当前的代码设计,将这些已知的函数或方法(代码)打成抓包,该抓包即为上述第三方包,上述当前工程为开发人员使用Java编程语言开发的代码设计,即由代码实现的应用项目,本实施例中,如上述步骤S1所述,在部署之前首先接收到对当前工程进行部署的部署指令,该部署指令可由用户自行输入或设定指定频率触发。
如上述步骤S2所述,上述版本控制系统(Subversion,简称svn)是一个开放的源代码的版本管理仓库,开发人员开发的工程可放置于svn,且开发人员每次将工程上传到svn即保存该工程的最新版本。上述源代码文件包括当前工程的源代码、对应的配置信息以及与部署相关的信息等。当进行部署时,需从svn中检出上述源代码文件,同时触发jenkins发出配置指令,然后接收该配置指令,jenkins为一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,本实施例中在Jenkins平台中运行由Java开发的当前工程。上述配置指令为用于配置部署当前工程时所需的文件的指令,如将第三方包写入配置文件的指令。
如上述步骤S3-S5所述,上述部署工具为用于部署当前工程的一种工具,如ant,ant中包括配置文件(build.xml),build.xml文件用于生成与当前工程对应的部署任务,该部署任务为完成工程部署的任务,如将当前工程编译并打成工程包后放到服务器主机的发布容器中(如tomcat),并通过服务器主机运行上述工程包从而完成工程部署,在部署之前需要通过配置文件进行配置,这时可将预设的、存储在指定位置的第三方包写入配置文件中,该指定位置为当前工程部署执行时可读的位置。。
本实施例中,在jenkins上配置job(jenkins上最小执行单位),进行部署时,用户可自行或设定指定频率去触发job执行,从而检出最新的svn上的工程代码,然后执行javatest命令运行class文件,该命令会将所有的在指定位置的第三方包自动配置在build.xml文件里,然后执行ant命令去运行build.xml配置里的部署任务,这些任务包含编译工程代码、打成jar包,把jar包拷贝到工作目录下等,最后job会执行jar包。整个部署过程无需人工操作,全程自动完成,在现有工程自动部署的基础上将第三方包自动写入配置文件中,即使在不同工程、不同数量的第三方包的场景下,仍然可以获得上述配置文件,与现有的每扫描一个第三方包即需要人为手工修改配置文件的方法相比,不但简单方便,不易出错且提高软件产品的质量。
在一个实施例中,上述步骤S3,包括:
步骤S30:依据所述配置指令从所述指定位置中获取所述第三方包;
步骤S31:将所述第三方包写入所述配置文件中,并在所述配置文件中生成对应所述第三方包的标签,所述标签包含所述第三方包的路径以及名称信息。
本实施例中,依据配置指令对上述指定位置进行扫描,每扫描一个第三方包即将其写入配置文件的对应位置中,同时生成对应的标签,根据该标签包含第三方包的路径以及名称信息,当部署工具对当前工程进行编译时,依据该标签可找到对应标签的第三方包,然后按照部署任务生成上述工程包,通过工程包生成对应的执行命令,完成执行命令所指示的工作即完成上述部署任务。
在另一个实施例中,上述步骤S3,包括:
步骤S32:依据所述配置指令读取所述部署工具中模板文件的内容以生成所述配置文件,所述模板文件为预设的可用作配置所述部署任务模板的文件,所述模板文件中设有用于指示所述第三方包当前位置的标识位;
步骤S33:通过所述标识位读取所述第三方包,并将所述第三方包写入所述配置文件中。
如上述步骤S32及S33所述,上述模板文件为预设的可用作配置上述部署任务模板的文件,本实施例中,设置模板文件主要用来标识第三方包,根据模板文件中的内容以及指定协议即可生成上述配置文件,配置文件中的内容包括模板文件中的内容以及第三方包的配置内容。具体而言,上述标识位用于指示第三方包的当前位置,该标识位记录有第三方包的路径以及名称,当读取模板文件的内容时,依据该标识位通过对应的路径读取第三方包,并将第三方包写入上述配置文件中。与现有的每次修改、增加或删除第三方包时部署前都需要人工手动重新更改配置文件相比,本实施例通过在部署工具中事先建立模板文件,确定第三方包的标识位,之后每次修改、增加或删除第三方包,都可以通过标识位直接读取更改后的第三方包,以及读取模板文件的内容,生成对应的配置文件,避免了每次更改第三方包都必须更改配置文件的麻烦。另一方面,每次当前工程发生变化,比如修改了工程的代码、增加或减删工程文件,不需要修改部署工具的配置文件,只需要修改模板文件中对应的内容,且无需再手动添加第三方包,部署时对应的配置文件即会发生相应的变化。
在一个实施例中,上述步骤S4之后,包括:
步骤S5:监测所述第三方包是否发生变更;
步骤S6:若监测到所述第三方包发生变更,则重新读取所述模板文件的内容以生成第一配置文件;
步骤S7:依据所述标识位重新读取变更后的第三方包,并将变更后的第三方包写入所述第一配置文件中。
如上述步骤S5-S7所述,在生成配置文件的同时模板文件保留上述标识位。系统持续监测第三方包,当监测到指定位置的第三方包发生变更时,自动触发部署指令,并依据上述步骤S1-S4,重新读取模板文件的内容生成第一配置文件时,再依据上述标识位重新读取更变后的第三方包,然后写入第一配置文件中,以便进行部署。这样,不管怎么频繁地增加或者删除第三方包,都不需要手动去修改配置文件里的第三方包的配置,因为模板文件里有第三方包的标识位,当第三方包发生变更时,依据所述标识位重新读取变更后的第三方包,从而得到新的配置文件。现有技术中需要进行变更时,直接修改配置文件,每次都要很繁琐地去手动修改配置文件才能继续部署、构建,而本方案通过模板文件,执行class后就会根据模板文件和指定协议,智能地自动得到所需要的配置文件,便利便捷,无需频繁地修改部署工具的配置文件。
当然,若模板文件的内容发生变更,对应的,依据变更后的模板文件内容以及指定协议重新生成新的配置文件。
在另一个实施例中,上述步骤S4之后,包括:
步骤S5’:接收用户更改所述模板文件的标识位的更改信息;
步骤S6’:依据所述更改信息重新读取更改后的模板文件内容以生成第二配置文件;
步骤S7’:依据所述更改后的标识位重新读取所述第三方包,并将所述第三方包写入到所述第二配置文件中。
本实施例中,当第三方包的位置发生变化,这时用户可以自行对模板文件中的标识位进行修改,将其修改成对应第三方包的位置的标识位,当接收到用户更改该标识为的更改信息,则系统可依据该更改信息重新部署工程,重新读取更改后的模板内容生成第二配置文件,然依据更改后的标识为读取第三方包,并将其写入第二配置文件中,从而保证当前工程正常部署。
在一个实施例中,上述将所述源代码文件编译并打成工程包上传到指定服务器主机中的步骤,包括:
步骤S40:监测所述当前工程的类型;
步骤S41:若监测到当前工程的类型为web类型,则将所述源代码文件编译并打成war包上传到服务器主机中,并依据所述war包生成第一服务接口,所述第一服务接口用于对外连接并提供访问入口。
本实施例中,在自动部署打包的时候,根据应用的不同,可将当前工程打成不同的工程包,如抓包(jar包)、war包或ear包,其中jar包和ear包一般用在单机中部署执行,war包则对应web类型的工程,可对外进行交互,故而,在编译打包之前可先监测当前工程的类型,如果监测到是web类型的工程,则将当前工程打成war包,这样在工程部署后才能提供接口服务给到外界访问,其中Web工程可以基于spring mvc进行开发,可在开发当前工程的过程中基于spring mvc框架开发接口,即上述当前工程中包括该接口,当将工程打成war包,部署时自动生成上述第一服务接口,可对外提供接口服务,使其可通过第一服务接口对该工程进行访问。
在一个实施例中,上述步骤S40之后,包括:
步骤S42:判断所述源代码文件是否发生变更,
步骤S42:若是,则触发重配命令;
步骤S43:依据所述重配命令重新将所述源代码文件编译并打新的war包,并依据所述新的war包生成第二服务接口,将所述第一服务接口替换成第二服务接口。
本实施例中,上述重配命令为重新配置上述配置文件并依据新的配置文件进而部署的命令,当判断到上述当前工程发生变更,即对应的源代码文件也会发生变更,这时会触发重配命令,进而依据新的配置文件进行部署,并生成新的服务接口,该新的服务接口即上述第二服务接口,其定义可参照上述第一服务接口,用于对外连接并提供访问入口,当生成第二服务接口时,关闭上述第一服务接口提供的服务并替换成第二服务接口提供的服务。
参照图2,本实施例中工程自动部署装置,包括:
接收指令单元100,用于接收用于对当前工程进行部署的部署指令,所述当前工程为当前使用Java应用开发的工程;
获取文件单元200,用于依据所述部署指令从版本控制系统中获取所述当前工程的源代码文件,并接收配置指令;
写入文件单元300,用于依据所述配置指令将预设的第三方包写入部署工具的配置文件,所述部署工具用于部署所述当前工程,所述第三方包为开发所述当前工程时使用的已知函数的抓包,所述第三方包存储于所述当前工程部署执行时可读的指定位置;
生成任务单元400,用于依据所述配置文件生成部署任务;
部署工程单元500,用于根据所述部署任务将所述源代码文件编译并打成工程包,将所述工程包上传到服务器主机中,以使得所述服务器主机运行所述工程包以完成工程部署。
在编程语言(如Java)应用开发过程中,当开发人员完成代码设计,需要将其应用到测试环境或者生产环境中,这一过程即为部署,而开发人员在开发的过程中,会使用已知的函数或方法(代码)来辅助完成当前的代码设计,将这些已知的函数函数或方法(代码)打成抓包即为上述第三方包,上述当前工程为开发人员使用Java编程语言开发的代码设计,即由代码实现的应用项目,本实施例中,如上述接收指令单元100所述,在部署之前首先接收到对当前工程进行部署的部署指令,该部署指令可由用户自行输入或设定指定频率触发。
如上述获取文件单元200所述,上述版本控制系统(Subversion,简称svn)是一个开放的源代码的版本管理仓库,开发人员开发的工程可放置于svn,且开发人员每次将工程上传到svn即保存该工程的最新版本。上述源代码文件包括当前工程的源代码、对应的配置信息以及与部署相关的信息等。当进行部署时,需从svn中检出上述源代码文件,同时触发jenkins发出配置指令,然后接收该配置指令,jenkins为一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,本实施例中在Jenkins平台中运行由Java开发的当前工程。上述配置指令为用于配置部署当前工程时所需的文件的指令,如将第三方包写入配置文件的指令。
如上述写入文件单元300、生成任务单元400及部署工程单元500所述,上述部署工具为用于部署当前工程的一种工具,如ant,ant中包括配置文件(build.xml),build.xml文件用于生成与当前工程对应的部署任务,该部署任务为完成工程部署的任务,如将当前工程编译并打成工程包后放到服务器主机的发布容器中(如tomcat),并通过服务器主机运行上述工程包从而完成工程部署,在部署之前需要通过配置文件进行配置,这时可将预设的、存储在指定位置的第三方包写入配置文件中,该指定位置为当前工程部署执行时可读的位置。
本实施例中,在jenkins上配置job(jenkins上最小执行单位),进行部署时,用户可自行或设定指定频率去触发job执行,从而检出最新的svn上的工程代码,然后执行javatest命令运行class文件,该命令会将所有的在指定位置的第三方包自动配置在build.xml文件里,然后执行ant命令去运行build.xml配置里的部署任务,这些任务包含编译工程代码、打成jar包,把jar包拷贝到工作目录下等,最后job会执行jar包。整个部署过程无需人工操作,全程自动完成,在现有工程自动部署的基础上将第三方包自动写入配置文件中,即使在不同工程、不同数量的第三方包的场景下,仍然可以获得上述配置文件,与现有的每扫描一个第三方包即需要人为手工修改配置文件的方法相比,不但简单方便,不易出错且提高软件产品的质量。
在一个实施例中,上述写入文件单元300,包括:
第一获取子单元,用于依据所述配置指令从所述指定位置中获取所述第三方包;
第一写入子单元,用于将所述第三方包写入所述配置文件中,并在所述配置文件中生成对应所述第三方包的标签,所述标签包含所述第三方包的路径以及名称信息。
本实施例中,依据配置指令对上述指定位置进行扫描,每扫描一个第三方包即将其写入配置文件的对应位置中,同时生成对应的标签,根据该标签包含第三方包的路径以及名称信息,当部署工具对当前工程进行编译时,依据该标签可找到对应标签的第三方包,然后按照部署任务生成上述工程包,通过工程包成对应的执行命令,完成执行命令所指示的工作即完成上述部署任务。
在另一个实施例中,上述写入文件单元300,包括:
第二读取子单元,用于依据所述配置指令读取所述部署工具中模板文件的内容以生成所述配置文件,所述模板文件为预设的可用作配置所述部署任务模板的文件,所述模板文件中设有用于指示所述第三方包当前位置的标识位;
第二写入子单元,用于通过所述标识位读取所述第三方包,并将所述第三方包写入所述配置文件中。
如上述第二读取子单元及第二写入子单元所述,上述模板文件为预设的可用作配置上述部署任务模板的文件,本实施例中,设置模板文件主要用来标识第三方包,根据模板文件中的内容以及指定协议即可生成上述配置文件,配置文件中的内容包括模板文件中的内容以及第三方包的配置内容。具体而言,上述标识位用于指示第三方包的当前位置,该标识位记录有第三方包的路径以及名称,当读取模板文件的内容时,依据该标识位读取第三方包,并通过对应的路径将第三方包写入上述配置文件中。与现有的每次修改、增加或删除第三方包时部署前都需要人工手动重新更改配置文件相比,本实施例通过在部署工具中事先建立模板文件,确定第三方包的标识位,之后每次修改、增加或删除第三方包,都可以通过标识位直接读取更改后的第三方包,以及读取模板文件的内容,生成对应的配置文件,避免了每次更改第三方包都必须更改配置文件的麻烦。另一方面,每次当前工程发生变化,比如修改了工程的代码、增加或减删工程文件,不需要修改部署工具的配置文件,只需要修改模板文件中对应的内容,且无需再手动添加第三方包,部署时对应的配置文件即会发生相应的变化。
在一个实施例中,工程自动部署装置,还包括:
第一监测单元,用于监测所述第三方包是否发生变更;
第一重读单元,用于监测到所述第三方包发生变更时,重新读取所述模板文件的内容以生成第一配置文件;
第一重写单元,用于依据所述标识位重新读取变更后的第三方包,并将变更后的第三方包写入所述第一配置文件中。
本实施例中,在生成配置文件的同时模板文件保留上述标识位。系统持续监测第三方包,当监测到指定位置的第三方包发生变更时,自动触发部署指令,重新读取模板文件的内容生成第一配置文件时,再依据上述标识位重新读取更变后的第三方包,然后写入第一配置文件中,以便进行部署。这样,不管怎么频繁地增加或者删除第三方包,都不需要手动去修改配置文件里的第三方包的配置,因为模板文件里有第三方包的标识位,当第三方包发生变更时,依据所述标识位重新读取变更后的第三方包,从而得到新的配置文件。现有技术中需要进行变更时,直接修改配置文件,每次都要很繁琐地去手动修改配置文件才能继续部署、构建,而本方案通过模板文件,执行class后就会根据模板文件和指定协议,智能地自动得到所需要的配置文件,便利便捷,无需频繁地修改部署工具的配置文件。
当然,若模板文件的内容发生变更,对应的,依据变更后的模板文件内容以及指定协议重新生成新的配置文件。
在另一个实施例中,工程自动部署装置,还包括:
接收更改单元,用于接收用户更改所述模板文件的标识位的更改信息;
第二重读单元,用于依据所述更改信息重新读取更改后的模板文件内容以生成第二配置文件;
第二重写单元,用于依据所述更改后的标识位重新读取所述第三方包,并将所述第三方包写入到所述第二配置文件中。
本实施例中,当第三方包的位置发生变化,这时用户可以自行对模板文件中的标识位进行修改,将其修改成对应第三方包的位置的标识位,当接收到用户更改该标识为的更改信息,则系统可依据该更改信息重新部署工程,重新读取更改后的模板内容生成第二配置文件,然依据更改后的标识为读取第三方包,并将其写入第二配置文件中,从而保证当前工程正常部署。
在一个实施例中,上述生成任务单元400,包括:
第二监测单元,用于监测所述当前工程的类型;
提供入口单元,用于监测到当前工程的类型为web类型时,将所述源代码文件编译并打成war包上传到服务器主机中,并依据所述war包生成第一服务接口,所述第一服务接口用于对外连接并提供访问入口。
本实施例中,在自动部署打包的时候,根据应用的不同,可将当前工程打成不同的工程包,如抓包(jar包)、war包或ear包,其中jar包和ear包一般用在单机中部署执行,war包则对应web类型的工程,可对外进行交互,故而,在编译打包之前可先监测当前工程的类型,如果监测到是web类型的工程,则将当前工程打成war包,这样在工程部署后才能提供接口服务给到外界访问,其中Web工程可以基于spring mvc进行开发,可在开发当前工程的过程中基于spring mvc框架开发接口,即上述当前工程中包括该接口,当将工程打成war包,部署时自动生成上述第一服务接口,可对外提供接口服务,使其可通过第一服务接口对该工程进行访问。
在一个实施例中,工程自动部署装置,还包括:
判断变更单元,用于判断所述源代码文件是否发生变更,
触发重配单元,用于判断所述源代码文件发生变更时,触发重配命令;
替换接口单元,用于依据所述重配命令重新将所述源代码文件编译并打新的war包,并依据所述新的war包生成第二服务接口,将所述第一服务接口替换成第二服务接口。
本实施例中,上述重配命令为重新配置上述配置文件并依据新的配置文件进而部署的命令,当判断到上述当前工程发生变更,即对应的源代码文件也会发生变更,这时会触发重配命令,进而依据新的配置文件进行部署,并生成新的服务接口,该新的服务接口即上述第二服务接口,其定义可参照上述第一服务接口,用于对外连接并提供访问入口,当生成第二服务接口时,关闭上述第一服务接口提供的服务并替换成第二服务接口提供的服务。。
参照图3,本发明实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储工程自动部署时所需的所有数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于工程自动部署方法。
上述处理器执行上述基于工程自动部署方法的步骤:接收用于对当前工程进行部署的部署指令,所述当前工程为当前使用Java应用开发的工程;依据所述部署指令从版本控制系统中获取所述当前工程的源代码文件,并接收配置指令;依据所述配置指令将预设的第三方包写入部署工具的配置文件,所述部署工具用于部署所述当前工程,所述第三方包为开发所述当前工程时使用的已知函数的抓包,所述第三方包存储于所述当前工程部署执行时可读的指定位置;依据所述配置文件生成部署任务;根据所述部署任务将所述源代码文件编译并打成工程包,将所述工程包上传到服务器主机中,以使得所述服务器主机运行所述工程包以完成工程部署。
上述计算机设备,上述依据所述配置指令将预设的第三方包写入部署工具的配置文件的步骤,包括:依据所述配置指令从所述指定位置中获取所述第三方包;将所述第三方包写入所述配置文件中,并在所述配置文件中生成对应所述第三方包的标签,所述标签包含所述第三方包的路径以及名称信息。在一个实施例中,上述依据所述配置指令将第三方包写入部署工具的配置文件的步骤,包括:依据所述配置指令读取所述部署工具中模板文件的内容以生成所述配置文件,所述模板文件为预设的可用作配置所述部署任务模板的文件,所述模板文件中设有用于指示所述第三方包当前位置的标识位;通过所述标识位读取所述第三方包,并将所述第三方包写入所述配置文件中。
在一个实施例中,上述依据所述配置任务将所述源代码文件编译并打成工程包,将所述工程包上传到服务器主机中,以使得所述服务器主机运行所述工程包以完成工程部署的步骤之后,包括:监测所述第三方包是否发生变更;若监测到所述第三方包发生变更,则重新读取所述模板文件的内容以生成第一配置文件;依据所述标识位重新读取变更后的第三方包,并将变更后的第三方包写入所述第一配置文件中。
在一个实施例中,上述依据所述配置任务将所述源代码文件编译并打成工程包,将所述工程包上传到服务器主机中,以使得所述服务器主机运行所述工程包以完成工程部署的步骤之后,包括:接收用户更改所述模板文件的标识位的更改信息;依据所述更改信息重新读取更改后的模板文件内容以生成第二配置文件;依据所述更改后的标识位重新读取所述第三方包,并将所述第三方包写入到所述第二配置文件中。
在一个实施例中,上述依据所述配置任务将所述源代码文件编译并打成工程包,将所述工程包上传到指定服务器主机中的步骤,包括:监测所述当前工程的类型;若监测到所述当前工程的类型为web类型,则将所述源代码文件编译并打成war包上传到服务器主机中,并依据所述war包生成第一服务接口,所述第一服务接口用于对外连接并提供访问入口。
在一个实施例中,上述将所述源代码文件编译并打成war包上传到服务器主机中,并依据所述war包生成第一服务接口,所述第一服务接口用于对外连接并提供访问入口的步骤之后,包括:判断所述源代码文件是否发生变更;若是,则触发重配命令;依据所述重配命令重新将所述源代码文件编译并打新的war包,并依据所述新的war包生成第二服务接口,将所述第一服务接口替换成第二服务接口。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本发明一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种基于工程自动部署方法,具体为:接收用于对当前工程进行部署的部署指令,所述当前工程为当前使用Java应用开发的工程;依据所述部署指令从版本控制系统中获取所述当前工程的源代码文件,并接收配置指令;依据所述配置指令将预设的第三方包写入部署工具的配置文件,所述部署工具用于部署所述当前工程,所述第三方包为开发所述当前工程时使用的已知函数的抓包,所述第三方包存储于所述当前工程部署执行时可读的指定位置;依据所述配置文件生成部署任务;根据所述部署任务将所述源代码文件编译并打成工程包,将所述工程包上传到服务器主机中,以使得所述服务器主机运行所述工程包以完成工程部署。
上述计算机可读存储介质,上述依据所述配置指令将预设的第三方包写入部署工具的配置文件的步骤,包括:依据所述配置指令从所述指定位置中获取所述第三方包;将所述第三方包写入所述配置文件中,并在所述配置文件中生成对应所述第三方包的标签,所述标签包含所述第三方包的路径以及名称信息。
在一个实施例中,上述依据所述配置指令将第三方包写入部署工具的配置文件的步骤,包括:依据所述配置指令读取所述部署工具中模板文件的内容以生成所述配置文件,所述模板文件为预设的可用作配置所述部署任务模板的文件,所述模板文件中设有用于指示所述第三方包当前位置的标识位;通过所述标识位读取所述第三方包,并将所述第三方包写入所述配置文件中。
在一个实施例中,上述依据所述配置任务将所述源代码文件编译并打成工程包,将所述工程包上传到服务器主机中,以使得所述服务器主机运行所述工程包以完成工程部署的步骤之后,包括:监测所述第三方包是否发生变更;若监测到所述第三方包发生变更,则重新读取所述模板文件的内容以生成第一配置文件;依据所述标识位重新读取变更后的第三方包,并将变更后的第三方包写入所述第一配置文件中。
在一个实施例中,上述依据所述配置任务将所述源代码文件编译并打成工程包,将所述工程包上传到服务器主机中,以使得所述服务器主机运行所述工程包以完成工程部署的步骤之后,包括:接收用户更改所述模板文件的标识位的更改信息;依据所述更改信息重新读取更改后的模板文件内容以生成第二配置文件;依据所述更改后的标识位重新读取所述第三方包,并将所述第三方包写入到所述第二配置文件中。
在一个实施例中,上述依据所述配置任务将所述源代码文件编译并打成工程包,将所述工程包上传到指定服务器主机中的步骤,包括:监测所述当前工程的类型;若监测到所述当前工程的类型为web类型,则将所述源代码文件编译并打成war包上传到服务器主机中,并依据所述war包生成第一服务接口,所述第一服务接口用于对外连接并提供访问入口。
在一个实施例中,上述将所述源代码文件编译并打成war包上传到服务器主机中,并依据所述war包生成第一服务接口,所述第一服务接口用于对外连接并提供访问入口的步骤之后,包括:判断所述源代码文件是否发生变更;若是,则触发重配命令;依据所述重配命令重新将所述源代码文件编译并打新的war包,并依据所述新的war包生成第二服务接口,将所述第一服务接口替换成第二服务接口。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM一多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种工程自动部署方法,其特征在于,包括:
接收用于对当前工程进行部署的部署指令,所述当前工程为当前使用Java应用开发的工程;
依据所述部署指令从版本控制系统中获取所述当前工程的源代码文件,并接收配置指令;
依据所述配置指令将预设的第三方包写入部署工具的配置文件,所述部署工具用于部署所述当前工程,所述第三方包为开发所述当前工程时使用的已知函数的抓包,所述第三方包存储于所述当前工程部署执行时可读的指定位置;
依据所述配置文件生成部署任务;
根据所述部署任务将所述源代码文件编译并打成工程包,将所述工程包上传到服务器主机中,以使得所述服务器主机运行所述工程包以完成工程部署。
2.根据权利要求1所述的工程自动部署方法,其特征在于,所述依据所述配置指令将预设的第三方包写入部署工具的配置文件的步骤,包括:
依据所述配置指令从所述指定位置中获取所述第三方包;
将所述第三方包写入所述配置文件中,并在所述配置文件中生成对应所述第三方包的标签,所述标签包含所述第三方包的路径以及名称信息。
3.根据权利要求1所述的工程自动部署方法,其特征在于,所述依据所述配置指令将第三方包写入部署工具的配置文件的步骤,包括:
依据所述配置指令读取所述部署工具中模板文件的内容以生成所述配置文件,所述模板文件为预设的可用作配置所述部署任务模板的文件,所述模板文件中设有用于指示所述第三方包当前位置的标识位;
通过所述标识位读取所述第三方包,并将所述第三方包写入所述配置文件中。
4.根据权利要求3所述的工程自动部署方法,其特征在于,所述依据所述配置任务将所述源代码文件编译并打成工程包,将所述工程包上传到服务器主机中,以使得所述服务器主机运行所述工程包以完成工程部署的步骤之后,包括:
监测所述第三方包是否发生变更;
若监测到所述第三方包发生变更,则重新读取所述模板文件的内容以生成第一配置文件;
依据所述标识位重新读取变更后的第三方包,并将变更后的第三方包写入所述第一配置文件中。
5.根据权利要求3所述的基于云部署的自动部署方法,其特征在于,所述依据所述配置任务将所述源代码文件编译并打成工程包,将所述工程包上传到服务器主机中,以使得所述服务器主机运行所述工程包以完成工程部署的步骤之后,包括:
接收用户更改所述模板文件的标识位的更改信息;
依据所述更改信息重新读取更改后的模板文件内容以生成第二配置文件;
依据所述更改后的标识位重新读取所述第三方包,并将所述第三方包写入到所述第二配置文件中。
6.根据权利要求1所述的工程自动部署方法,其特征在于,所述依据所述配置任务将所述源代码文件编译并打成工程包,将所述工程包上传到指定服务器主机中的步骤,包括:
监测所述当前工程的类型;
若监测到所述当前工程的类型为web类型,则将所述源代码文件编译并打成war包上传到服务器主机中,并依据所述war包生成第一服务接口,所述第一服务接口用于对外连接并提供访问入口。
7.根据权利要求6所述的工程自动部署方法,其特征在于,所述将所述源代码文件编译并打成war包上传到服务器主机中,并依据所述war包生成第一服务接口,所述第一服务接口用于对外连接并提供访问入口的步骤之后,包括:
判断所述源代码文件是否发生变更;
若是,则触发重配命令;
依据所述重配命令重新将所述源代码文件编译并打新的war包,并依据所述新的war包生成第二服务接口,将所述第一服务接口替换成第二服务接口。
8.一种工程自动部署装置,其特征在于,包括:
接收指令单元,用于接收用于对当前工程进行部署的部署指令,所述当前工程为当前使用Java应用开发的工程;
获取文件单元,用于依据所述部署指令从版本控制系统中获取所述当前工程的源代码文件,并接收配置指令;
写入文件单元,用于依据所述配置指令将预设的第三方包写入部署工具的配置文件,所述部署工具用于部署所述当前工程,所述第三方包为开发所述当前工程时使用的已知函数的抓包,所述第三方包存储于所述当前工程部署执行时可读的指定位置;
生成任务单元,用于依据所述配置文件生成部署任务;
部署工程单元,用于根据所述部署任务将所述源代码文件编译并打成工程包,将所述工程包上传到服务器主机中,以使得所述服务器主机运行所述工程包以完成工程部署。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN201811527201.1A 2018-12-13 2018-12-13 工程自动部署方法、装置、计算机设备和存储介质 Pending CN109800016A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811527201.1A CN109800016A (zh) 2018-12-13 2018-12-13 工程自动部署方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811527201.1A CN109800016A (zh) 2018-12-13 2018-12-13 工程自动部署方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN109800016A true CN109800016A (zh) 2019-05-24

Family

ID=66556757

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811527201.1A Pending CN109800016A (zh) 2018-12-13 2018-12-13 工程自动部署方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN109800016A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110377292A (zh) * 2019-06-17 2019-10-25 平安普惠企业管理有限公司 服务配置方法、装置、计算机设备及存储介质
CN110490483A (zh) * 2019-08-26 2019-11-22 中国建设银行股份有限公司 投产方法、装置、设备和存储介质
CN110554959A (zh) * 2019-08-16 2019-12-10 苏州浪潮智能科技有限公司 一种Apache Ant集成方法、系统、终端及存储介质
CN111611008A (zh) * 2020-05-22 2020-09-01 浪潮电子信息产业股份有限公司 一种软件代码打包部署方法、装置、设备及存储介质
CN111813413A (zh) * 2020-06-28 2020-10-23 四川长虹电器股份有限公司 一种自动生成yaml文件的方法
CN112579145A (zh) * 2019-09-30 2021-03-30 北京国双科技有限公司 应用部署方法及装置
CN112783533A (zh) * 2021-02-03 2021-05-11 北京达佳互联信息技术有限公司 版本信息更新方法、装置、终端及存储介质
CN113535188A (zh) * 2020-04-15 2021-10-22 北京沃东天骏信息技术有限公司 私有化部署的方法和装置
CN113821225A (zh) * 2021-09-02 2021-12-21 天津同阳科技发展有限公司 一种项目模块分离部署的方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120159471A1 (en) * 2010-12-21 2012-06-21 Microsoft Corporation Multi-machine deployment and configuration of multi-tiered applications
US8595103B1 (en) * 2008-09-30 2013-11-26 Accenture Global Services Limited Deployment and release component system
EP2760179A1 (en) * 2013-01-29 2014-07-30 Synchronoss Technologies, Inc. Tethering enforcement device controller and methods thereof
CN106775730A (zh) * 2016-12-21 2017-05-31 深圳Tcl数字技术有限公司 程序发布方法及系统
CN108073400A (zh) * 2017-12-07 2018-05-25 湖北三新文化传媒有限公司 软件自动化构建方法、服务器及存储介质
CN108388445A (zh) * 2018-03-09 2018-08-10 北京四方继保自动化股份有限公司 一种基于“平台+应用”模式的持续集成方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8595103B1 (en) * 2008-09-30 2013-11-26 Accenture Global Services Limited Deployment and release component system
US20120159471A1 (en) * 2010-12-21 2012-06-21 Microsoft Corporation Multi-machine deployment and configuration of multi-tiered applications
EP2760179A1 (en) * 2013-01-29 2014-07-30 Synchronoss Technologies, Inc. Tethering enforcement device controller and methods thereof
CN106775730A (zh) * 2016-12-21 2017-05-31 深圳Tcl数字技术有限公司 程序发布方法及系统
CN108073400A (zh) * 2017-12-07 2018-05-25 湖北三新文化传媒有限公司 软件自动化构建方法、服务器及存储介质
CN108388445A (zh) * 2018-03-09 2018-08-10 北京四方继保自动化股份有限公司 一种基于“平台+应用”模式的持续集成方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
尼洪涛: "项目在ORACLE云平台上的部署", 《无线互联科技》, vol. 15, no. 06, 31 March 2018 (2018-03-31), pages 18 - 19 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110377292A (zh) * 2019-06-17 2019-10-25 平安普惠企业管理有限公司 服务配置方法、装置、计算机设备及存储介质
CN110554959A (zh) * 2019-08-16 2019-12-10 苏州浪潮智能科技有限公司 一种Apache Ant集成方法、系统、终端及存储介质
CN110490483A (zh) * 2019-08-26 2019-11-22 中国建设银行股份有限公司 投产方法、装置、设备和存储介质
WO2021036697A1 (zh) * 2019-08-26 2021-03-04 中国建设银行股份有限公司 投产方法、装置、设备和存储介质
CN112579145A (zh) * 2019-09-30 2021-03-30 北京国双科技有限公司 应用部署方法及装置
CN113535188A (zh) * 2020-04-15 2021-10-22 北京沃东天骏信息技术有限公司 私有化部署的方法和装置
CN111611008A (zh) * 2020-05-22 2020-09-01 浪潮电子信息产业股份有限公司 一种软件代码打包部署方法、装置、设备及存储介质
CN111813413A (zh) * 2020-06-28 2020-10-23 四川长虹电器股份有限公司 一种自动生成yaml文件的方法
CN112783533A (zh) * 2021-02-03 2021-05-11 北京达佳互联信息技术有限公司 版本信息更新方法、装置、终端及存储介质
CN113821225A (zh) * 2021-09-02 2021-12-21 天津同阳科技发展有限公司 一种项目模块分离部署的方法

Similar Documents

Publication Publication Date Title
CN109800016A (zh) 工程自动部署方法、装置、计算机设备和存储介质
CN107577469B (zh) 一种软件打包发布管理方法
CN105511911B (zh) 系统固件升级包的生成方法及装置
CN108363587B (zh) 应用程序运行监控方法、装置、计算机设备和存储介质
CN109634612A (zh) 持续集成方法、系统、计算机设备和存储介质
CN109710524A (zh) 一种自动测试方法、系统和计算机存储介质
CN110162509A (zh) 文件比对方法、装置、计算机设备及存储介质
CN106648741A (zh) 一种应用系统部署方法及装置
CN106293811A (zh) 一种自动打包发布方法及装置
WO2016000126A1 (zh) 一种自动化部署方法和终端
CN112882700A (zh) iOS应用程序构建方法及装置、电子设备及存储介质
CN109885299B (zh) 模型开发中的模板处理方法、装置、计算机设备和存储介质
CN109639809A (zh) 一种业务数据请求链路监控的方法及装置
CN109799980A (zh) 基于数据处理多编程语言互连的方法、装置及计算机设备
CN111651352B (zh) 一种仓库代码的合并方法及装置
CN114329297A (zh) 内容管理系统、静态页面的管理方法、装置及存储介质
CN104598382B (zh) 一种测试控制方法和装置
CN111813630A (zh) 收集日志信息的方法、装置和计算机设备
CN109254765A (zh) 定时任务管理方法、装置、计算机设备及存储介质
CN109819014A (zh) 项目部署方法、装置、计算机设备和存储介质
CN111221546A (zh) 一种地图数据及地图更新方法、装置、终端设备及服务器
CN104166541B (zh) 用于更新被测控件库的方法和装置
WO2017076244A1 (zh) 一种动态修复应用程序的方法、装置及相关系统
CN112035124A (zh) 应用程序部署方法及装置
JP4656336B2 (ja) Plcネットワークシステムの開発支援装置

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