一种自动更新静态文件版本号的方法及系统与流程

文档序号:12664607阅读:256来源:国知局
一种自动更新静态文件版本号的方法及系统与流程

本发明涉及计算机技术领域,特别是涉及一种自动更新静态文件版本号的方法及系统。



背景技术:

目前在大型Web应用中,为了加快网页访问速度以及提升用户体验,研发人员在代码开发中会使用大量的静态文件。研发人员在修改图片、JS脚本、CSS样式等静态文件后,不仅需要修改该文件的版本号,还需要在引用该文件的位置修改文件版本号,当新系统发布后,浏览器可以通过文件的版本号获取最新的资源。

然而,在Web项目中,当JS、CSS等静态文件被修改后,为了在发布系统时获得最新的应用页面,研发人员需要手动寻找所有引用该资源文件的位置,手动修改文件版本号,这种方式需要人工查找及修改,操作十分繁琐且容易出现错误,影响研发人员的工作效率。



技术实现要素:

本发明主要解决的技术问题是提供一种自动更新静态文件版本号的方法及系统,通过上述方式,能够自动更新静态文件的版本号,减少人工维护的成本,提高工作效率。

为解决上述技术问题,本发明采用的一个技术方案是:提供一种自动更新静态文件版本号的方法,所述方法包括:检测Web应用程序的静态文件的状态描述以判断静态文件是否被修改;获取修改后的静态文件并生成新的文件版本号,将新的文件版本号与修改后的静态文件相关联并存储在版本控制系统中,版本控制系统用于管理Web应用程序的文件版本更新;查找Web应用程序中所有引用修改后的静态文件的位置,并自动更新修改后的静态文件对应的文件版本号。

其中,获取修改后的静态文件并生成新的文件版本号,将新的文件版本号与修改后的静态文件相关联并存储在版本控制系统中,所述版本控制系统用于管理Web应用程序的文件版本更新,包括:获取修改后的静态文件;生成与修改后的静态文件对应的唯一识别码;根据识别码生成与修改后的静态文件对应的新的文件版本号。

其中,生成与修改后的静态文件对应的唯一识别码,包括:根据修改后的静态文件的内容按照特定算法生成MD5值;根据识别码生成与修改后的静态文件对应的新的文件版本号,包括:将识别码的字符串作为与修改后的静态文件对应的新的文件版本号。

其中,所述方法之前还包括:从服务器端下载需要修改的静态文件,并将静态文件保存在版本控制系统对应的Web应用程序目录中;修改并保存静态文件的内容,同时静态文件在版本控制系统中对应的状态描述发生改变。

其中,所述方法之后还包括:生成版本控制系统中对应的文件清单,文件清单记录所有被修改过的文件信息;向服务器端发送文件清单;根据文件清单更新服务器上Web应用程序对应的文件内容及文件版本号。

为解决上述技术问题,本发明采用的另一个技术方案是:一种自动更新静态文件版本号的系统,所述系统包括:检测模块,用于检测Web应用程序中所有静态文件的状态描述以判断静态文件是否被修改;生成模块,用于获取修改后的静态文件并生成新的文件版本号,将新的文件版本号与修改后的静态文件相关联并存储在版本控制系统中,版本控制系统用于管理Web应用程序的文件版本更新;更新模块,查找Web应用程序中所有引用修改后的静态文件的位置,用于自动更新修改后的静态文件对应的文件版本号。

其中,生成模块包括:获取单元,用于获取修改后的静态文件;第一生成单元,用于生成与修改后的静态文件对应的唯一识别码;第二生成单元,用于根据识别码生成与修改后的静态文件对应的新的文件版本号。

其中,第一生成单元用于执行以下步骤:根据修改后的静态文件的内容按照特定算法生成MD5值;第二生成单元用于执行以下步骤:将识别码的字符串作为与修改后的静态文件对应的新的文件版本号。

其中,检测模块之前还包括:下载模块,用于从服务器端下载需要修改的静态文件,并将静态文件保存在版本控制系统对应的Web应用程序目录中;修改模块,用于修改并保存静态文件的内容,同时静态文件在版本控制系统中对应的状态描述发生改变。

其中,更新模块之后还包括:第三生成模块,用于生成版本控制系统中对应的文件清单,文件清单记录所有被修改过的文件信息;发送模块,用于向服务器端发送文件清单;第二更新模块,用于根据文件清单更新服务器上Web应用程序对应的文件内容及文件版本号。

本发明的有益效果是:根据修改后的静态文件生成新的文件版本号,查找Web应用程序中所有引用修改后的静态文件的位置,并自动更新修改后的静态文件对应的文件版本号,通过上述方式,能够自动更新修改后的静态文件的版本号,减少人工维护的成本,提高工作效率。

附图说明

图1是本发明自动更新静态文件版本号方法的第一实施例流程图;

图2是本发明自动更新静态文件版本号方法的第二实施例流程图;

图3是本发明自动更新静态文件版本号方法的第三实施例流程图;

图4是本发明自动更新静态文件版本号方法的第四实施例流程图;

图5是本发明自动更新静态文件版本号的系统第一实施例结构示意图;

图6是本发明自动更新静态文件版本号的系统第二实施例结构示意图;

图7是本发明自动更新静态文件版本号的系统第三实施例结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,图1是本发明自动更新静态文件版本号方法的第一实施例流程图。需注意的是,若有实质上相同的结果,本发明的方法并不以图1所示的流程顺序为限。如图1所示,该方法包括如下步骤:

S10:检测Web应用程序的静态文件的状态描述以判断静态文件是否被修改。

其中,Web应用程序是一种可以通过Web访问的应用程序,用户只需要通过浏览器就可以访问或者使用该程序,而不需要安装任何其他软件。在大型Web应用程序开发中,会有多个研发人员同时对同一项目的不同功能代码进行编程或修改,为了避免重复修改或者漏掉任何修改后的代码,会将Web项目的所有代码存放在服务器端由版本控制系统进行统一管理。

在Web应用程序开发过程中,为了加快访问速度和提高用户的体验,研发人员会大量使用静态文件进行缓存加速,其中静态文件包括:图片、js脚本、css文件、文本文件等。在开发过程中,研发人员从服务器端下载项目组的最新代码到本地电脑上,并进入自己负责的分支进行工作,每隔一段时间或者当天工作完成后向服务器端上传自己修改的部分代码。当研发人员修改图片、js脚本、css样式等静态文件后,上述静态文件对应的状态描述会发生相应的改变,例如静态文件的状态描述由0变成1,1变成0,或者设置其它不同标识符用于区分修改后的静态文件。通过检测静态文件的状态描述可以判断静态文件是否被修改,当静态文件被修改执行步骤S11,当静态文件没有修改则进入步骤S14结束程序。

S11:获取修改后的静态文件并生成新的文件版本号,将新的文件版本号与修改后的静态文件相关联并存储在版本控制系统中,版本控制系统用于管理Web应用程序的文件版本更新。

本发明的实施例中,版本控制系统以SVN为例。SVN(Subversion)为开放源代码的版本控制系统,在本实施例中,存放Web项目代码的服务器端及研发人员的本地工作机上均安装有SVN系统,用于Web应用程序的版本管控,且Web项目的所有代码均保存在SVN相应的仓库中。当研发人员在本地工作机上完成静态文件的修改,对应的静态文件的状态描述也会发生相应的更改。系统通过检测静态文件的状态描述,收集所有被修改过的静态文件,并通过每个修改后的静态文件生成对应的新的文件版本号,作为该静态文件的唯一标识存储于SVN系统中。不同文件的不同版本号可以标识该文件是否为最新代码。

S12:查找Web应用程序中所有引用修改后的静态文件的位置,并自动更新修改后的静态文件对应的文件版本号。

在Web应用程序中,部分静态文件会被其他文件所引用,引用文件中会记录该静态文件的文件名称、引用路径及文件的版本号。当上述静态文件的版本号发生改变,相应的引用文件中的该静态文件对应的版本号也必须同步更新,才能确保发布后的浏览器可以获取最新的资源。

S13:结束。

通过上述方法,能够自动更新修改后的静态文件的版本号,减少人工维护的成本,提高工作效率。

本实施例中,系统针对SVN中状态描述发生改变的所有静态文件自动进行版本号的更新,在其他实施例中,研发人员可以通过配置不同的参数,仅针对符合要求的静态文件进行版本号的更新。例如,更新2天前修改过的静态文件的版本号:

java-jar version-static.jar-Ddebug=true-DrunType=TIMER-DlastModifyDay=-2

runType:指运行模式,此处只针对符合要求的静态文件进行版本号的更新,默认情况下-DrunType=SVN,指通过检测SVN系统中对应的静态文件的状态描述是否发生改变,对所有修改后的静态文件进行版本号的更新;

lastModifyDay:查找几天前修改过的静态文件,默认为0天;

lastModifyMin:查找几分钟前修改过的静态文件,默认为30分钟;

debug:调试模式,默认为false。

参考图2,图2是本发明自动更新静态文件版本号方法的第二实施例流程图。步骤S11进一步包括以下步骤:

S210:获取修改后的静态文件。

通过检测Web应用程序的静态文件的状态描述,获取修改后的静态文件。进一步的,系统可以检测Web应用程序中所有的静态文件,也可以通过配置参数对所有文件进行筛选。

以java程序为例,可以过滤掉不需要检测的文件。例如,检测除了jsp、html、jscss等类型的其他所有文件的状态描述。

java-jar version-static.jar-DfilterName=php,asp-Ddebug=true

filterName:需要过滤的源文件类型,默认有jsp、html、jscss;

debug:调试模式,默认false。

在另一实施例中,也可以只检测指定的文件类型,例如,只检测txt、JPG、json等类型的文件的状态描述。

java-jar version-static.jar-DversionName=txt,JPG,json-Ddebug=true

versionName:需要更新版本的文件类型,默认有css、js、xml、swf、jpg、png、gif。

S211:生成与修改后的静态文件对应的唯一识别码。

本实施例中,可以根据修改后的静态文件的内容按照特定算法生成MD5值。其中,MD5(Message-Digest Algorithm 5)为信息-摘要算法5,由任意长度的数据计算出来的MD5值的长度都是固定的,且无论对原数据做任何改动,哪怕只修改一个字节,所得到的MD5的值都有很大区别。因此,当研发人员每次对静态文件做不同修改时,对应文件内容生成的MD5值都是唯一的,不可能重复。当然,在其他实施例中,也可以运用其他算法生成不同的识别码,作为静态文件修改后的唯一识别码。

S212:根据识别码生成与修改后的静态文件对应的新的文件版本号。

进一步的,将识别码的字符串作为与修改后的静态文件对应的新的文件版本号。在一般情况下,软件系统的版本号由3部分构成,即主版本号+次版本号+修改号。其中,主版本号1位,只有当系统在结构和功能上有重大突破改进后才发生变化,次版本号有2位,修改号有8位,当系统进行任何修改后,版本号都要随之改变。本实施例中,由于只是针对Web应用程序的静态文件进行修改,所以只需要修改最后8位修改号,读取步骤S211中生成的MD5值的后8位字符串,作为静态文件的版本号的后8位修改号。根据MD5值的特点,无论对静态文件的内容做任何细微修改,根据其内容生成的MD5值都会有很大的区别,因此通过读取MD5后8位的数值,可以生成静态文件唯一的版本号码。

通过上述方法,可以通过修改后的静态文件内容生成唯一的MD5值,并将该MD5值的后8位作为静态文件唯一的版本号,进而区分修改后的静态文件。

参考图3,图3是本发明自动更新静态文件版本号方法的第三实施例流程图。在步骤S10之前,还包括以下步骤:

S30:从服务器端下载需要修改的静态文件,并将静态文件保存在版本控制系统对应的Web应用程序目录中。

在步骤S10中有提及,在大型Web应用程序开发中,会有多个研发人员同时对同一项目的不同功能代码进行编程或修改,为了避免重复修改或者漏掉任何修改后的代码,会将Web项目的所有代码存放在服务器端由版本控制系统进行统一管理。因此,研发人员修改Web应用程序之前,需要从服务器端下载要修改的静态文件,并将文件保存于本地机器所安装的SVN系统下对应的Web应用程序目录中。

S31:修改并保存静态文件的内容,同时静态文件在版本控制系统中对应的状态描述发生改变。

完成步骤S30后,研发人员对静态文件的内容进行修改,并保存修改后的内容,当静态文件的内容被更改,SVN系统中对应的静态文件的状态描述会发生相应的改变,其他研发人员或系统可以通过状态描述知道该静态文件被修改过。

通过上述方法,可以通过查找静态文件的状态描述,准确判断哪些静态文件被修改。

图4是本发明自动更新静态文件版本号方法的第四实施例流程图。在步骤S13之后,还包括以下步骤:

S40:生成版本控制系统中对应的文件清单,文件清单记录所有被修改过的文件信息。

除了被修改过的静态文件,所有引用静态文件的其他文件都会被SVN系统列入文件清单中,便于系统识别所有被修改过的文件信息。

S41:向服务器端发送文件清单。

S42:根据文件清单更新服务器上Web应用程序对应的文件内容及文件版本号。

SVN系统通过文件清单,更新服务器上所有修改过的文件以及文件的版本号,当发布新的Web应用程序时,浏览器才能更新到最新的资源,显示修改后的最新内容。

请参阅图5,图5是本发明自动更新静态文件版本号的系统第一实施例结构示意图。本实施例中,该系统包括检测模块50、生成模块51及更新模块52。其中,

检测模块50,用于检测Web应用程序中所有静态文件的状态描述以判断静态文件是否被修改。

生成模块51,用于获取修改后的静态文件并生成新的文件版本号,将新的文件版本号与修改后的静态文件相关联并存储在版本控制系统中,版本控制系统用于管理Web应用程序的文件版本更新。

更新模块52,查找Web应用程序中所有引用修改后的静态文件的位置,用于自动更新修改后的静态文件对应的文件版本号。

进一步的,生成模块51包括获取单元511、第一生成单元512及第二生成单元513。其中,

获取单元511,用于获取修改后的静态文件。

第一生成单元512,用于生成与修改后的静态文件对应的唯一识别码。

可选的,第一生成单元512用于根据修改后的静态文件的内容按照特定算法生成MD5值。

第二生成单元513,用于根据识别码生成与修改后的静态文件对应的新的文件版本号。

可选的,第二生成单元513用于将识别码的字符串作为与修改后的静态文件对应的新的文件版本号。

图6是本发明自动更新静态文件版本号的系统第二实施例结构示意图,在检测模块50之前,该系统还包括:下载模块60及修改模块61。其中,

下载模块60,用于从服务器端下载需要修改的静态文件,并将静态文件保存在版本控制系统对应的Web应用程序目录中。

修改模块61,用于修改并保存静态文件的内容,同时静态文件在版本控制系统中对应的状态描述发生改变。

图7是本发明自动更新静态文件版本号的系统第三实施例结构示意图,在更新模块52之后,该系统包括:第三生成模块70、发送模块71及第二更新模块72。其中,

第三生成模块70,用于生成版本控制系统中对应的文件清单,文件清单记录所有被修改过的文件信息。

发送模块71,用于向服务器端发送文件清单。

第二更新模块72,用于根据文件清单更新服务器上Web应用程序对应的文件内容及文件版本号。

本实施例中的各个模块及单元可分别执行上述方法实施例中对应的步骤,故在此不对各模块进行赘述,详细请参阅以上对应步骤的说明。

在本发明所提供的几个实施方式中,应该理解到,所揭露的系统,和方法,可以通过其它的方式实现。例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1