首页 / 专利库 / 电脑安全 / 补丁管理 / 补丁 / 一种基于jenkins的web项目更新补丁生成方法

一种基于jenkins的web项目更新补丁生成方法

阅读:660发布:2020-05-08

专利汇可以提供一种基于jenkins的web项目更新补丁生成方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于jenkins的web项目更新 补丁 生成方法,包括以下步骤:S1:用户上传项目代码至代码管理仓库;S2:获取项目代码;S3:对所述项目源代码进行编译;S4:判断编译是否成功,若成功,则进入下一步;若编译失败,则结束;S5:查找前一次项目代码编译成功的构建输出文件夹路径;若查找成功,则进入下一步;若查找失败,则跳过更新补丁生成步骤,只发布安装包,完成打包工作。该基于jenkins的web项目更新补丁生成方法在发布一款中大型项目,并且项目由许多的模 块 组成,此场景下每一个模块的更新不再人工将整个项目打包部署上线,可在无人工干预的情况下实现中大型-web项目的编译打包,减少了企业的用人成本,提高项目的更新 迭代 版本次数。,下面是一种基于jenkins的web项目更新补丁生成方法专利的具体信息内容。

1.一种基于jenkins的web项目更新补丁生成方法,其特征在于,包括以下步骤:
S1:用户上传项目代码至代码管理仓库;
S2:获取项目代码;
S3:对所述项目源代码进行编译;
S4:判断编译是否成功,若成功,则进入下一步;若编译失败,则结束;
S5:查找前一次项目代码编译成功的构建输出文件夹路径;若查找成功,则进入下一步;若查找失败,则跳过更新补丁生成步骤,只发布安装包,完成打包工作;
S6:把前一次项目代码编译成功的构建输出文件夹路径和此次项目代码编译成功的构建输出文件夹路径作为启动更新补丁生成程序的参数并执行更新补丁程序;若补丁更新程序执行成功,则进入下一步;若补丁更新程序执行失败,则跳过更新补丁生成步骤,只发布安装包,完成打包工作;
S7:归档安装包和更新定补丁包。
2.根据权利要求1所述的一种基于jenkins的web项目更新补丁生成方法,其特征在于:
在S1中,提供两种触发方式,均是在前期运行环境搭建过程中进行设置:Gogs代码管理仓库设置上传自动触发代码,通过代码的执行实现自动触发编译打包,在Jenkins设置定时器,通过定时器到点自动触发编译打包。
3.根据权利要求1所述的一种基于jenkins的web项目更新补丁生成方法,其特征在于:
在S5中,在默认配置的场景下,Jenkins能够保留下述三种目录:
存储每次构建任务的结果的目录;
指向最后一次成功构建任务的结果的快捷方式;
指向最后一次稳定构建任务的结果的快捷方式。
4.根据权利要求1所述的一种基于jenkins的web项目更新补丁生成方法,其特征在于:
在S5中,通过使用shell脚本调取Jenkins任务配置,能够计算本次构建的项目指向最后一次成功构建任务的结果的目录,该目录的一个子目录为构建输出文件夹,shell脚本最终取得该文件夹的绝对路径。
5.根据权利要求1所述的一种基于jenkins的web项目更新补丁生成方法,其特征在于:
在S6中,shell脚本调取Jenkins任务配置并计算出此次构建过程项目代码编译成功的构建输出文件夹路径,将该路径视为相对路径。

说明书全文

一种基于jenkins的web项目更新补丁生成方法

技术领域

[0001] 本发明涉及计算机技术领域,具体为一种基于jenkins的web项目更新补丁生成方法。

背景技术

[0002] 现阶段web项目的规模、复杂性日益增加,而大多数web项目发布方式都是采用人工将项目打包编译并发布安装包,然后把安装包上传到服务器进行部署,然后项目上线调试。
[0003] Jenkins是一款由Java编写的开源的持续集成工具。Jenkins提供了软件开发的持续集成服务。它运行在Servlet容器中(例如Apache Tomcat)。它支持软件配置管理(SCM)工具(包括AccuRev SCM、CVS、Subversion、Git、Perforce、Clearcase和RTC),可以执行基于Apache Ant和Apache Maven的项目,以及任意的Shell脚本和Windows批处理命令。
[0004] Jenkins可以使开发者从繁杂的集成过程中解脱出来,专注于更为重要的业务逻辑实现,此外,Jenkins能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性
[0005] Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。自诞生于 2005 年以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。它的速度飞快,极其适合管理大项目,它还有着令人难以置信的非线性分支管理系统,可以应付各种复杂的项目开发需求。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。git-diff是Git的子工具,能比较不同版本的差异并生成git-apply可用的补丁。git-apply是Git的子工具,能够应用git-diff生成的补丁。
[0006] Gogs是一款极易搭建的自助 Git 服务和代码管理仓库。Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。
[0007] 采用人工打包部署上线项目适用于项目类型小的场景,此场景下的部署方式会比较简单。但是如果在发布一款中大型项目,并且项目由许多的模组成,此场景下每一个模块的更新都意味着需要人工将整个项目打包部署上线,使服务端的更新难度大大增加,并且不仅耗时也耗财。因此,有必要提供一种基于Jenkins的web项目自动化编译打包和生成更新补丁的方案,能够把已有的流程以自动化、无人工干预的方式自动编译发布安装包并生成更新补丁。

发明内容

[0008] 针对现有技术的不足,本发明提供了一种基于jenkins的web项目更新补丁生成方法。
[0009] 为实现以上目的,本发明通过以下技术方案予以实现:一种基于jenkins的web项目更新补丁生成方法,包括以下步骤:S1:用户上传项目代码至代码管理仓库;
S2:获取项目代码;
S3:对所述项目源代码进行编译;
S4:判断编译是否成功,若成功,则进入下一步;若编译失败,则结束;
S5:查找前一次项目代码编译成功的构建输出文件夹路径;若查找成功,则进入下一步;若查找失败,则跳过更新补丁生成步骤,只发布安装包,完成打包工作;
S6:把前一次项目代码编译成功的构建输出文件夹路径和此次项目代码编译成功的构建输出文件夹路径作为启动更新补丁生成程序的参数并执行更新补丁程序;若补丁更新程序执行成功,则进入下一步;若补丁更新程序执行失败,则跳过更新补丁生成步骤,只发布安装包,完成打包工作;
S7:归档安装包和更新定补丁包。
[0010] 优选的,在S1中,提供两种触发方式,均是在前期运行环境搭建过程中进行设置:Gogs代码管理仓库设置上传自动触发代码,通过代码的执行实现自动触发编译打包,在Jenkins设置定时器,通过定时器到点自动触发编译打包。
[0011] 优选的,在S5中,在默认配置的场景下,Jenkins能够保留下述三种目录:存储每次构建任务的结果的目录;
指向最后一次成功构建任务的结果的快捷方式;
指向最后一次稳定构建任务的结果的快捷方式。
[0012] 优选的,在S5中,通过使用shell脚本调取Jenkins任务配置,能够计算本次构建的项目指向最后一次成功构建任务的结果的目录,该目录的一个子目录为构建输出文件夹,shell脚本最终取得该文件夹的绝对路径。
[0013] 优选的,在S6中,shell脚本调取Jenkins任务配置并计算出此次构建过程项目代码编译成功的构建输出文件夹路径,将该路径视为相对路径。
[0014] 有益效果本发明提供了一种基于jenkins的web项目更新补丁生成方法。具备以下有益效果:
(1)、该基于jenkins的web项目更新补丁生成方法在发布一款中大型项目,并且项目由许多的模块组成,此场景下每一个模块的更新不再人工将整个项目打包部署上线,可在无人工干预的情况下实现中大型-web项目的编译打包,减少了企业的用人成本,提高项目的更新迭代版本次数;
(2)、该基于jenkins的web项目更新补丁生成方法生成的更新补丁文件的体积要比完整的安装包的体积小得多,令应用更新补丁比重新部署安装包的代价要小,显著提升了项目部署的速度,让应用的更新更高效。
附图说明
[0015] 图1为本发明的工作原理图。

具体实施方式

[0016] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0017] 请参阅图1,本发明提供一种技术方案:一种基于Jenkins的web项目自动化编译打包和生成更新补丁的方法,能够实现无人工干预的自动化web项目编译打包和更新补丁生成,让项目部署更简单,更高效;同时又能提高项目的更新迭代版本次数,减少用人成本。
[0018] 本实施例的自动化过程包括:S1:用户上传项目代码至代码管理仓库;
具体的,用户将开发完的项目代码上传至Gogs上后,触发自动化过程。
[0019] 在此,本实施例提供两种自动触发的方式,均是在前期运行环境搭建过程中进行设置:在Gogs代码管理仓库设置上传自动触发代码,通过代码的执行实现自动触发编译打包。
[0020] 在Jenkins设置定时器,通过定时器到点自动触发编译打包。
[0021] 上述两种设置自动编译打包的触发点的方式,都能在达到触发时刻全自动完成所有操作。其中,优选采用前者,因为其具有可有效控制版本更新的优点。
[0022] S2:获取项目代码;Jenkins从Gogs代码管理仓库拉取项目代码。
[0023] S3:对所述项目源代码进行编译;Jenkins将上一步骤获取的项目代码进行编译构建、测试等。
[0024] S4:判断编译是否成功,若成功,则进入下一步;若编译失败,则结束;具体的,Jenkins判断编译的各个步骤(构建、测试等)是否成功,若所有步骤都成功,则进入下一步;若某个步骤失败,则视为编译失败。
[0025] S5:查找前一次项目代码编译成功的构建输出文件夹路径;若查找成功,则进入下一步;若查找失败,则跳过更新补丁生成步骤,只发布安装包,完成打包工作;具体的,在默认配置的场景下,Jenkins能够保留下述三种目录:
存储每次构建任务的结果的目录;
指向最后一次成功构建任务的结果的快捷方式;
指向最后一次稳定构建任务的结果的快捷方式。
[0026] 在当前的构建步骤中,通过使用shell脚本调取Jenkins任务配置,能够计算本次构建的项目指向最后一次成功构建任务的结果的目录,该目录的一个子目录为构建输出文件夹,shell脚本最终取得该文件夹的绝对路径。
[0027] 进一步,shell脚本判断该绝对路径是否存在:若存在,则进入下一个步骤;若不存在,则中断shell脚本并跳过更新补丁生成步骤,因为此场景下不能满足生成更新补丁的要求,此后Jenkins将继续执行余下的构建步骤,发布本次构建的项目的安装包,完成打包过程。
[0028] S6:前一次项目代码编译成功的构建输出文件夹路径和此次项目代码编译成功的构建输出文件夹路径作为启动更新补丁生成程序的参数并执行更新补丁程序;若补丁更新程序执行成功,则进入下一步;若补丁更新程序执行失败,则跳过更新补丁生成步骤,只发布安装包,完成打包工作;具体的,上一步骤中shell脚本找到并确认绝对路径存在,然后shell脚本调取Jenkins任务配置并计算出此次构建过程项目代码编译成功的构建输出文件夹路径,将该路径视为相对路径。然后,使用指定的两组参数执行补丁更新程序git-diff,指定的两组参数为:
第一组参数包括三个参数:--binary --no-prefix --no-index;
第二个参数包括两个参数:绝对路径相对路径。
[0029] 完整的补丁更新程序执行命令为:git diff --binary --no-prefix --no-index绝对路径相对路径
为了达到生成更新补丁文件的目录,需要在该命令的最后加上输出重定向到指定文件,效果如下:
git diff --binary --no-prefix --no-index绝对路径相对路径 > 生成的补丁文件路径
进一步的,为了达到若补丁更新程序执行失败,则跳过更新补丁生成步骤的目的,需要令更形程序执行命令即使出错也不影响整个构建过程,因为在Jenkins的构建过程中,多行的shell指令中的任一行指令执行后退出代码非0都会使Jenkins将此构建过程中断并将构建状态设置为失败,最终的更新补丁程序执行命令如下:
git diff --binary --no-prefix --no-index绝对路径相对路径 > 生成的补丁文件路径 || true
S7:归档安装包和更新定补丁包;
具体的,若不能满足生成更新补丁的要求或者补丁更新程序运行失败,则只归档安装包;否则归档安装包和更新补丁包。
[0030] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下。
[0031] 尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈