CN111258561A - 一种软件自动化编译部署启动监控的方法 - Google Patents
一种软件自动化编译部署启动监控的方法 Download PDFInfo
- Publication number
- CN111258561A CN111258561A CN202010024157.3A CN202010024157A CN111258561A CN 111258561 A CN111258561 A CN 111258561A CN 202010024157 A CN202010024157 A CN 202010024157A CN 111258561 A CN111258561 A CN 111258561A
- Authority
- CN
- China
- Prior art keywords
- compiling
- program
- project
- deployment
- online
- 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
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/35—Creation or generation of source code model driven
-
- 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/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- 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)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种软件自动化编译部署启动监控的方法,该方法包括以下步骤:结合Jenkins平台,在Linux服务器上安装部署Maven客户端及依赖服务;执行编译命令,执行脚本执行对比、备份指令,部署到线上编译存储路径;编写一个以self.conf命名的自述文件存放在程序部署服务器项目路径下,采用线上程序控制端将编译的代码部署到线上程序目录;采用线上程序控制端工具启动线上程序,监控执行流程。通过建立一个通用的***和模型极大简化了开发者日常工作中的编译、部署、启动、监控的工作,避免了不必要的工作差错,自动化对比备份等功能可让开发者对开发出的软件更新有清晰认知并可进行后续的版本回退。
Description
技术领域
本发明涉及监控技术领域,具体来说,涉及一种软件自动化编译部署启动监控的方法。
背景技术
当前IT行业日常工作中,软件编译和部署是软件开发的重要工作组成部分,同时软件编译和部署往往需要大量的时间来处理。如何简化软件编译和部署不只是精简开发工作的需要,更是快速迭代的软件产品能否快速推向市场的重要保证。
发明内容
针对相关技术中的上述技术问题,本发明提出一种软件自动化编译部署启动监控的方法,能够克服现有技术的上述不足。
为实现上述技术目的,本发明的技术方案是这样实现的:
一种软件自动化编译部署启动监控的方法,该方法包括以下步骤:
S1:结合Jenkins平台,在Linux服务器上安装部署Maven客户端及依赖服务,其中,Jenkins平台为开源的基于Java编程语言开发的持续集成工具平台,Maven为Java编程语言的项目构建工具;
S2:采用编译服务器的Jenkins软件拉取指定版本代码,执行编译命令,执行脚本执行对比、备份指令,部署到线上编译存储路径;
S3:编写一个以self.conf命名的自述文件存放在程序部署服务器项目路径下,采用线上程序控制端将编译的代码部署到线上程序目录,其中,self.conf为配置文件;
S4:采用线上程序控制端工具启动线上程序,监控执行流程。
进一步的,所述步骤S2包括以下步骤:
S21:登录Jenkins管理员账号首页,创建一个新任务,输入任务名称,选择软件项目类型,选择Git仓库代码,指定Git项目地址,配置编译参数和执行脚本,保存操作流程和数据信息;
S22:选择Jenkins任务点击立即构建,获取构建历史信息,输出历史信息到控制台,获取相应的构建输出日志,查看构建结果;
S23:执行Jenkins任务定义。
进一步的,所述步骤S23包括以下步骤:
S231:从Git地址获取指定分支的代码信息;
S232:切换到指定版本的代码;
S233:Maven编译,多环境部署项目;
S234:备份代码源,执行脚本,移动Maven编译目录至线上编译存储路径。
进一步的,所述步骤S233中多环境部署项目的步骤包括以下步骤:
S2331:采用MavenProfile机制,在项目目录下创建resources目录;
S2332:划分环境;
S2333:放置项目配置文件到环境子目录;
S2334:配置Maven调用参数指定具体环境。
进一步的,所述控制端工具执行同步代码逻辑指令、查看线程状态逻辑指令、查看程序状态逻辑指令、启动程序逻辑指令、停止程序逻辑指令、重启程序逻辑指令。
本发明的有益效果:通过建立一个通用的***和模型极大简化了开发者日常工作中的编译、部署、启动、监控的工作,避免了不必要的工作差错,自动化对比备份等功能可让开发者对开发出的软件更新有清晰认知并可进行后续的版本回退。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例所述的一种软件自动化编译部署启动监控的方法的流程框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,根据本发明实施例所述的一种软件自动化编译部署启动监控的方法,包括以下步骤:
S1:结合Jenkins平台,在Linux服务器上安装部署Maven客户端及依赖服务,其中,Jenkins平台为开源的基于Java编程语言开发的持续集成工具平台,Maven为Java编程语言的项目构建工具;
S2:采用编译服务器的Jenkins软件拉取指定版本代码,执行编译命令,执行脚本执行对比、备份指令,部署到线上编译存储路径;
S3:编写一个以self.conf命名的自述文件存放在程序部署服务器项目路径下,采用线上程序控制端将编译的代码部署到线上程序目录,其中,self.conf为配置文件;
S4:采用线上程序控制端工具启动线上程序,监控执行流程。
步骤S2包括以下步骤:
S21:登录Jenkins管理员账号首页,创建一个新任务,输入任务名称,选择软件项目类型,选择Git仓库代码,指定Git项目地址,配置编译参数和执行脚本,保存操作流程和数据信息;
S22:选择Jenkins任务点击立即构建,获取构建历史信息,输出历史信息到控制台,获取相应的构建输出日志,查看构建结果;
S23:执行Jenkins任务定义。
步骤S23包括以下步骤:
S231:从Git地址获取指定分支的代码信息;
S232:切换到指定版本的代码;
S233:Maven编译,多环境部署项目;
S234:备份代码源,执行脚本,移动Maven编译目录至线上编译存储路径。
步骤S233中多环境部署项目的步骤包括以下步骤:
S2331:采用MavenProfile机制,在项目目录下创建resources目录;
S2332:划分环境;
S2333:放置项目配置文件到环境子目录;
S2334:配置Maven调用参数指定具体环境。
在本发明的一个具体实施例中,所述控制端工具执行同步代码逻辑指令、查看线程状态逻辑指令、查看程序状态逻辑指令、启动程序逻辑指令、停止程序逻辑指令、重启程序逻辑指令。
为了方便理解本发明的上述技术方案,以下通过具体使用方式上对本发明的上述技术方案进行详细说明。
1)本发明结合Jenkins平台,首先在Linux服务器上安装部署该服务及依赖服务,如安装部署Maven客户端并配置软件包仓库地址(即本地Maven仓库地址);
2)登录Jenkins管理员账号首页,创建一个新任务,输入任务名称后选择“构建一个自由风格的软件项目”,选择Git仓库代码(即本地Git项目地址),配置编译参数和执行脚本,然后保存;
3)任务创建好后当需要执行的时候选择Jenkins任务点击立即构建,会出现构建历史,再点击控制台输出,可以看到相应的构建输出日志,最后可以查看构建是否成功。
一般Jenkins任务定义的执行过程为:
从Git地址拉取指定分支的代码;
切换到指定版本(默认HEAD)的代码;
Maven编译,为实现项目的多环境部署,需要利用MavenProfile机制,在项目目录下创建resources目录,分环境将项目配置文件放置在子目录下,然后配置Maven调用参数指定具体环境;
执行脚本先将代码源备份,然后将Maven编译目录移动至线上编译存储路径(注意:以上任何过程出现错误任务将以失败中断结束);
4)当需要在某台服务器上部署程序的时候,编写一个以self.conf命名的自述文件存放在程序部署服务器项目路径下,其中配置文件版本、项目描述、项目名称、代码拉取路径、项目类型、进程文件地址、需要监控的日志、程序运行环境配置(包括内存等)、程序运行环境版本和联系人信息;
5)使用线上程序控制端工具(命名为jktool)操作程序,在有self.conf自述文件的项目路径下执行,其依赖self.conf配置具有以下功能:
start 启动程序
stop 停止程序
restart 重启程序
status 查看程序状态
threads 查看线程状态
sync 同步代码
例如在项目部署目录下执行jktoolrestart将重启程序,此线上程序控制端工具逻辑:
获取当前路径,判断在路径下是否包含self.conf文件,不包含则程序结束,提示错误信息"未找到self.conf文件!";
加载self.conf文件,判断文件里设置的程序运行环境版本,根据设置的程序运行环境版本加载相应的程序运行环境,如果没找到对应的程序运行环境则程序结束,提示错误信息。
工具根据输入具体命令执行:
sync同步代码逻辑,加载self.conf文件中设置的代码拉取路径,判断是否为空,为空程序结束,提示"未设置源地址,无法同步! "。将Jenkins编译安装的程序目录同步入当前部署项目目录下;
threads查看线程状态逻辑,加载self.conf文件中设置的进程文件地址,判断是否存在,不存在提示错误信息“无法检测状态!”,判 断是否存在进程文件中设置的进程号,不存在提示程序未启动,若程序启动则抓取线程信息到文件,输出线程ID、CPU占用率、已运行时间、线程名称;
status查看程序状态逻辑,加载self.conf文件中设置的进程文件地址,判断是否存在,不存在提示错误信息“无法检测状态!”,检测判断是否存在该进程,存在提示“程序运行中!”,不存在提示“程序未启动!”;
start启动程序逻辑,加载self.conf文件中设置的进程文件地址,判断是否存在,不存在提示错误信息“无法检测状态!”,查看进程状态,判断是否存在该进程,存在提示“程序已经在运行中!”。判断self.conf文件中设置的项目类型,根据项目类型启动程序,如果类型未定义提示“不支持的程序类型,无法启动!”,判断进程是否存在,存在提示“启动成功!”,不存在提示“启动失败!”;
stop停止程序逻辑,加载self.conf文件中设置的进程文件地址,判断是否存在,不存在提示错误信息“无法检测状态!”,查看进程状 态,判断是否存在该进程,不存在提示“程序未启动!”。判断self.conf文件中设置的项目类型,根据项目类型停止程序。判断是否还存在进程,不存在提示“停止成功!”,存在提示“停止失败!”;
restart重启程序逻辑,依次执行上面的停止程序和启动程序。
综上所述,借助于本发明的上述技术方案,通过建立一个通用的***和模型极大简化了开发者日常工作中的编译、部署、启动、监控的工作,避免了不必要的工作差错,自动化对比备份等功能可让开发者对开发出的软件更新有清晰认知并可进行后续的版本回退。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种软件自动化编译部署启动监控的方法,其特征在于,包括以下步骤:
S1:结合Jenkins平台,在Linux服务器上安装部署Maven客户端及依赖服务,其中,Jenkins平台为开源的基于Java编程语言开发的持续集成工具平台,Maven为Java编程语言的项目构建工具;
S2:采用编译服务器的Jenkins软件拉取指定版本代码,执行编译命令,执行脚本执行对比、备份指令,部署到线上编译存储路径;
S3:编写一个以self.conf命名的自述文件存放在程序部署服务器项目路径下,采用线上程序控制端将编译的代码部署到线上程序目录,其中,self.conf为配置文件;
S4:采用线上程序控制端工具启动线上程序,监控执行流程。
2.根据权利要求1所述的一种软件自动化编译部署启动监控的方法,其特征在于,所述步骤S2包括以下步骤:
S21:登录Jenkins管理员账号首页,创建一个新任务,输入任务名称,选择软件项目类型,选择Git仓库代码,指定Git项目地址,配置编译参数和执行脚本,保存操作流程和数据信息;
S22:选择Jenkins任务点击立即构建,获取构建历史信息,输出历史信息到控制台,获取相应的构建输出日志,查看构建结果;
S23:执行Jenkins任务定义。
3.根据权利要求2所述的一种软件自动化编译部署启动监控的方法,其特征在于,所述步骤S23包括以下步骤:
S231:从Git地址获取指定分支的代码信息;
S232:切换到指定版本的代码;
S233:Maven编译,多环境部署项目;
S234:备份代码源,执行脚本,移动Maven编译目录至线上编译存储路径。
4.根据权利要求3所述的一种软件自动化编译部署启动监控的方法,其特征在于,所述步骤S233中多环境部署项目的步骤包括以下步骤:
S2331:采用Maven Profile机制,在项目目录下创建resources目录;
S2332:划分环境;
S2333:放置项目配置文件到环境子目录;
S2334:配置Maven调用参数指定具体环境。
5.根据权利要求1所述的一种软件自动化编译部署启动监控的方法,其特征在于,所述控制端工具执行同步代码逻辑指令、查看线程状态逻辑指令、查看程序状态逻辑指令、启动程序逻辑指令、停止程序逻辑指令、重启程序逻辑指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010024157.3A CN111258561A (zh) | 2020-01-10 | 2020-01-10 | 一种软件自动化编译部署启动监控的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010024157.3A CN111258561A (zh) | 2020-01-10 | 2020-01-10 | 一种软件自动化编译部署启动监控的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111258561A true CN111258561A (zh) | 2020-06-09 |
Family
ID=70945071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010024157.3A Pending CN111258561A (zh) | 2020-01-10 | 2020-01-10 | 一种软件自动化编译部署启动监控的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111258561A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782263A (zh) * | 2020-07-22 | 2020-10-16 | 网易(杭州)网络有限公司 | 游戏打包的处理方法及装置 |
CN112115056A (zh) * | 2020-09-23 | 2020-12-22 | 北京达佳互联信息技术有限公司 | 一种项目部署方法和装置、服务器、存储介质 |
CN113360143A (zh) * | 2021-07-08 | 2021-09-07 | 中国邮政储蓄银行股份有限公司 | 远程软件开发方法、装置、存储介质及处理器 |
CN113687818A (zh) * | 2021-08-17 | 2021-11-23 | 北京市商汤科技开发有限公司 | 任务执行方法、装置、设备及计算机可读存储介质 |
CN113721918A (zh) * | 2021-08-06 | 2021-11-30 | 苏州浪潮智能科技有限公司 | 一种基于koji进行编译和软件源制作的方法和装置 |
CN113946350A (zh) * | 2021-10-28 | 2022-01-18 | 苏州万店掌网络科技有限公司 | 一种共享工作空间的部署方法及*** |
CN114363143A (zh) * | 2021-12-14 | 2022-04-15 | 杭州东信北邮信息技术有限公司 | 一种基于小程序的运维操作方法和*** |
CN114416109A (zh) * | 2021-12-15 | 2022-04-29 | 广州市玄武无线科技股份有限公司 | 程序部署方法及其装置、计算机设备、存储介质 |
CN115951929A (zh) * | 2022-12-28 | 2023-04-11 | 广州宇中网络科技有限公司 | 一种第三方库源代码管理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050015762A1 (en) * | 2003-06-09 | 2005-01-20 | Steckler Steven James | Methods and systems for deploying computer source code |
CN106095408A (zh) * | 2016-05-31 | 2016-11-09 | 浙江网新恒天软件有限公司 | 一种数据监控和代码自动生成与部署的***及方法 |
CN106708509A (zh) * | 2016-11-28 | 2017-05-24 | 上海宝尊电子商务有限公司 | 自动化软件项目开发全链路配置管理*** |
CN109597644A (zh) * | 2018-12-05 | 2019-04-09 | 江苏风云科技服务有限公司 | 项目部署方法及装置 |
-
2020
- 2020-01-10 CN CN202010024157.3A patent/CN111258561A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050015762A1 (en) * | 2003-06-09 | 2005-01-20 | Steckler Steven James | Methods and systems for deploying computer source code |
CN106095408A (zh) * | 2016-05-31 | 2016-11-09 | 浙江网新恒天软件有限公司 | 一种数据监控和代码自动生成与部署的***及方法 |
CN106708509A (zh) * | 2016-11-28 | 2017-05-24 | 上海宝尊电子商务有限公司 | 自动化软件项目开发全链路配置管理*** |
CN109597644A (zh) * | 2018-12-05 | 2019-04-09 | 江苏风云科技服务有限公司 | 项目部署方法及装置 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782263A (zh) * | 2020-07-22 | 2020-10-16 | 网易(杭州)网络有限公司 | 游戏打包的处理方法及装置 |
CN111782263B (zh) * | 2020-07-22 | 2024-01-23 | 网易(杭州)网络有限公司 | 游戏打包的处理方法及装置 |
CN112115056A (zh) * | 2020-09-23 | 2020-12-22 | 北京达佳互联信息技术有限公司 | 一种项目部署方法和装置、服务器、存储介质 |
CN112115056B (zh) * | 2020-09-23 | 2024-06-04 | 北京达佳互联信息技术有限公司 | 一种项目部署方法和装置、服务器、存储介质 |
CN113360143A (zh) * | 2021-07-08 | 2021-09-07 | 中国邮政储蓄银行股份有限公司 | 远程软件开发方法、装置、存储介质及处理器 |
CN113721918B (zh) * | 2021-08-06 | 2023-08-04 | 苏州浪潮智能科技有限公司 | 一种基于koji进行编译和软件源制作的方法和装置 |
CN113721918A (zh) * | 2021-08-06 | 2021-11-30 | 苏州浪潮智能科技有限公司 | 一种基于koji进行编译和软件源制作的方法和装置 |
CN113687818A (zh) * | 2021-08-17 | 2021-11-23 | 北京市商汤科技开发有限公司 | 任务执行方法、装置、设备及计算机可读存储介质 |
CN113946350A (zh) * | 2021-10-28 | 2022-01-18 | 苏州万店掌网络科技有限公司 | 一种共享工作空间的部署方法及*** |
CN113946350B (zh) * | 2021-10-28 | 2022-08-19 | 苏州万店掌网络科技有限公司 | 一种共享工作空间的部署方法及*** |
CN114363143A (zh) * | 2021-12-14 | 2022-04-15 | 杭州东信北邮信息技术有限公司 | 一种基于小程序的运维操作方法和*** |
CN114416109A (zh) * | 2021-12-15 | 2022-04-29 | 广州市玄武无线科技股份有限公司 | 程序部署方法及其装置、计算机设备、存储介质 |
CN115951929A (zh) * | 2022-12-28 | 2023-04-11 | 广州宇中网络科技有限公司 | 一种第三方库源代码管理方法 |
CN115951929B (zh) * | 2022-12-28 | 2024-03-19 | 广州宇中网络科技有限公司 | 一种第三方库源代码管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111258561A (zh) | 一种软件自动化编译部署启动监控的方法 | |
CN108399083B (zh) | 一种***部署方法、装置、电子设备和存储介质 | |
US20040060035A1 (en) | Automated method and system for building, deploying and installing software resources across multiple computer systems | |
CN113703730A (zh) | 持续集成方法、装置、计算机设备及存储介质 | |
CN105389187B (zh) | 一种***更新的方法 | |
CN111966366A (zh) | 一种多cpu架构的集群部署的方法和设备 | |
US7934199B2 (en) | Automated operation of IT resources with multiple choice configuration | |
CA3129985A1 (en) | Abnormal operation environment restoration method and device, computer equipment and storage medium | |
US20040122928A1 (en) | Method and system for managing application server lifecycle | |
CN112363731A (zh) | 一种应用自动化部署方法、装置和计算机可读存储介质 | |
CN112214227A (zh) | 一种边缘服务器镜像定制化及部署***和方法 | |
CN116820493A (zh) | 一种镜像文件部署方法、***、设备及存储介质 | |
CN112860251A (zh) | 一种网站前端构建的方法与*** | |
CN115220863A (zh) | 容器应用的运维方法、装置、计算机设备和存储介质 | |
CN112711575A (zh) | 一种数据库集群的部署方法、***及相关装置 | |
CN113127329B (zh) | 脚本调试方法、装置及计算机存储介质 | |
US20040216138A1 (en) | Method and system for processing input from a command line interface | |
CN114253531A (zh) | 一种微服务发布*** | |
CN112231231A (zh) | 云端服务的调试方法、***及装置 | |
CN111966364A (zh) | 一种基于docker的Weblogic自动化环境搭建方法及*** | |
CN107315602B (zh) | 一种应用程序的升级方法及终端 | |
US20030212770A1 (en) | System and method of controlling software components | |
JP4872357B2 (ja) | プログラムテスト支援システム、方法及びプログラム | |
CN112748933A (zh) | 用于可编程逻辑控制器的在线下装方法 | |
CN115269442B (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 |