CN106250148A - 一种基于ant的项目差量升级方法 - Google Patents
一种基于ant的项目差量升级方法 Download PDFInfo
- Publication number
- CN106250148A CN106250148A CN201610618982.XA CN201610618982A CN106250148A CN 106250148 A CN106250148 A CN 106250148A CN 201610618982 A CN201610618982 A CN 201610618982A CN 106250148 A CN106250148 A CN 106250148A
- Authority
- CN
- China
- Prior art keywords
- project
- residual quantity
- file
- ant
- version
- 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
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000004140 cleaning Methods 0.000 claims description 6
- 230000001360 synchronised effect Effects 0.000 claims description 6
- 238000000151 deposition Methods 0.000 claims description 3
- 238000009795 derivation Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 3
- 238000011161 development Methods 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 4
- 238000012856 packing Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000032683 aging Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 210000003205 muscle Anatomy 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于ANT的项目差量升级方法,其具体实现过程为:首先基于项目SVN版本的对比获取差量文件,即通过ANT的SVN插件命令对项目的升级版本和当前版本执行差异对比,获取差量文件;同步差量文件,基于上述获取到的差量文件,对已有项目进行同步,同步项目当前版本至升级版本,完成项目升级。该基于ANT的项目差量升级方法与现有技术相比,不仅保证了项目的快速升级,而且通过对冗余文件的处理实现了对项目的准确同步,最终保障项目稳定、可靠运行,实用性强。
Description
技术领域
本发明涉及信息技术领域,具体地说是一种实用性强、基于ANT的项目差量升级方法。
背景技术
ANT是当前JAVA环境下最好用的打包部署工具,其采用xml的格式进行脚本编写,功能非常强大。ANT工具使用前,打包部署的流程一般是更新svn代码,修改相关的配置,编译class,发布到TOMCAT(WEB工程),测试启动无误,手动打包。项目开发或上线后,不同项目版本之间频繁升级,会导致人工频繁打包、部署。ANT工具的使用则避免了人工重复打包,重复部署的工作。借助ant自动升级使得开发人员从项目手动升级这样一个重复的,没有技术含量的,耗费体力的工作中解放出来,从而把有限的项目时间更多的放到开发实现中,从整体上推动了项目的开发进度。
项目在版本升级过程中现有方案多数采用全量升级方式进行。项目本地打出一个全量包后在项目生产环境中执行全部替换来完成项目的升级。对于一个需要版本升级的项目系统,执行全量替换耗时相对较长,对于项目中一些没有修改文件的替换也无端耗费了服务端及网络传输性能。尤其在网络不稳定情况下,全量升级带来的带宽压力会导致项目文件的丢失。现有采用增量升级的方案中,增量文件的获取大多通过自定义代码(或第三方软件)实现项目文件内容逐行比对或文件时间戳比对的方式来获取,且增量升级中仅考虑了项目中增加的文件,而忽略了对项目中已删减文件的处理。此种增量升级方式,一方面获取增量文件列表的文件比对实现方式及性能上有待考究,另一方面忽略了对项目中已删减文件的处理将导致项目中文件只增不减,垃圾文件不断膨胀,最终影响项目的正常运行。
基于此,现提供一种基于ANT的项目差量升级方法,通过该方法,一方面紧密结合项目开发的SVN环境,调用ANT的SVN版本比对命令,快速获取项目当前版本与待升级版本的差量文件列表(包含项目增加文件及项目删减文件)。另一方面,基于差量文件列表在项目升级过程中不仅对增加的文件进行添加,对于删减的文件通过获取删减文件原路径,执行ANT命令进行删除处理。
发明内容
本发明的技术任务是针对以上不足之处,提供一种实用性强、基于ANT的项目差量升级方法。
一种基于ANT的项目差量升级方法,其具体实现过程为:
首先基于项目SVN版本的对比获取差量文件,即通过ANT的SVN插件命令对项目的升级版本和当前版本执行差异对比,获取差量文件;
同步差量文件,基于上述获取到的差量文件,对已有项目进行同步,同步项目当前版本至升级版本,完成项目升级。
获取差量文件的过程为:
首先获取项目升级版本;
然后获取项目升级版本与项目当前版本差量文件列表;
最后获取基于当前版本的差量升级包。
获取项目升级版本过程为:在ANT脚本中通过执行SVN下载命令checkout命令,下载项目升级版本至本地目录;编译项目升级版本并将工程的class部分打包成jar库以备后续差量文件编译使用。
获取项目升级版本与项目当前版本差量文件列表过程为:在ANT脚本中通过执行SVN比对命令获取项目升级版本和项目当前版本的文件差异列表,即差量文件列表,包含新增加文件及已修改文件。
获取基于当前版本的差量升级包的过程为:基于差量文件列表通过编写的差量文件导出工具类导出差量文件并记录项目删减文件路径至自定义的相关文件中,使用ANT编译差量文件并生成相应的压缩包。
所述差量文件导出工具类中,输入参数为:差量文件路径,即通过执行SVN比对命令获取项目升级版本和项目当前版本的差量文件列表中的文件路径;基本路径,升级版本项目基本路径与差量文件路径一起构成项目中差量文件的绝对路径;保存路径,存放差量文件的新路径,与差量文件路径一起构成了存放差量文件的绝对路径;输出结果为:输出差量文件目录及项目中删减的文件路径;该差量文件导出工具类依据差量文件列表,在项目升级版本中找出差量文件,并另存在项目差量升级目录中,且对于项目升级版本中不存在的源文件,记录该文件路径,以备后续差量升级中ANT远程删除使用。
同步差量文件的过程为:
首先同步差量升级包至当前项目;
然后清理项目冗余文件;
最后重启服务完成项目升级。
同步差量升级包的过程为:通过ANT远程命令,拷贝基于当前版本的差量升级包至项目运行环境,替换项目目录中已存在文件并添加新文件。
清理项目冗余文件的过程为:读取该差量升级文件获取项目中删减文件,执行ANT远程命令删除当前项目中冗余文件。
完成项目升级过程为:差量升级后,执行ANT远程命令重启项目所在应用服务器,使得升级后的项目服务生效。
本发明的一种基于ANT的项目差量升级方法,具有以下优点:
本发明提供的一种基于ANT的项目差量升级方法,提供了解决现有项目全量升级及增量升级方案中耗时及文件冗余问题的方法:首先通过紧密结合项目开发的SVN环境,调用ANT的SVN版本比对命令,可快速获取项目当前版本与升级版本的差量文件列表进而获得差量升级所需文件;其次,在项目升级过程中基于差量文件列表对于增加的文件进行添加,对于删减的文件则执行删除处理,避免了现有增量升级方案中忽略对删减文件的处理,导致项目中冗余文件不断增加的后果;基于ANT的差量升级方法不仅保证了项目的快速升级,而且通过对删减文件(冗余文件)的处理实现了对项目的准确同步,最终保障了项目稳定可靠运行,实用性强,适用范围广泛,易于推广。
附图说明
附图1为本发明的实现示意图。
附图2为本发明中获取差量文件过程图。
附图3为本发明中同步差量文件过程图。
附图4为差量文件导出工具类工作原理图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明。
为了解决项目全量或增量升级过程中的时效性及准确性问题。 本发明的一种基于ANT的项目差量升级方法,如附图1所示,该方法包含如下三个方面:对项目增加的文件进行添加,对项目删减的文件进行删除,基于项目升级版本对项目当前版本进行同步。
其中对项目增加的文件进行添加是指:利用ANT的SVN插件命令对项目升级版本和项目当前版本执行差异对比,对于增加文件以列表方式进行记录。
对项目删减的文件进行删除是指:通过ANT的SVN插件命令对项目的升级版本和当前版本执行差异对比,对于删减的文件以列表的方式进行记录。
基于项目升级版本对项目当前版本进行同步是指:通过对比出来的差量文件列表,对已有项目执行文件添加或文件删除,同步项目当前版本至升级版本,完成项目升级。
如附图2-图4所示,其具体实现过程为:
首先基于项目SVN版本的对比获取差量文件,即通过ANT的SVN插件命令对项目的升级版本和当前版本执行差异对比,获取差量文件;
同步差量文件,基于上述获取到的差量文件,对已有项目进行同步,同步项目当前版本至升级版本,完成项目升级。
在基于项目SVN版本的对比获取差量文件之前还包括:
用户确认项目环境中使用SVN进行版本管理且本地网络与项目升级环境是连通的。
搭建ANT的SVN插件集成环境,ANT环境中确认能正常运行SVN服务,否则进行修复。
获取差量文件的过程为:
首先获取项目升级版本;
然后获取项目升级版本与项目当前版本差量文件列表;
最后获取基于当前版本的差量升级包。
获取项目升级版本过程为:在ANT脚本中通过执行SVN下载命令checkout命令,下载项目升级版本至本地目录;编译项目升级版本并将工程的class部分打包成jar库以备后续差量文件编译使用。
获取项目升级版本与项目当前版本差量文件列表过程为:在ANT脚本中通过执行SVN比对命令获取项目升级版本和项目当前版本的文件差异列表,即差量文件列表,包含新增加文件及已修改文件。
获取基于当前版本的差量升级包的过程为:基于差量文件列表通过编写的差量文件导出工具类导出差量文件并记录项目删减文件路径至自定义的相关文件differential.del文件中,使用ANT编译差量文件并生成相应的压缩包differential.zip压缩包中。
在所述差量文件导出工具类中:
输入条件。输入参数为:差量文件路径,即通过执行SVN比对命令获取项目升级版本和项目当前版本的差量文件列表中的文件路径(基于项目的相对路径)。基本路径,升级版本项目基本路径与差量文件路径一起构成了项目中差量文件的绝对路径。保存路径,存放差量文件的新路径,与差量文件路径一起构成了存放差量文件的绝对路径。
输出结果。输出差量文件目录(含差量升级文件)及项目中删减的文件路径。
核心逻辑。依据差量文件列表,在项目升级版本中找出差量文件,并另存在项目差量升级目录中。对于项目升级版本中不存在的源文件,记录该文件路径,以备后续差量升级中ANT远程删除使用。
同步差量文件的过程为:
首先同步差量升级包至当前项目;
然后清理项目冗余文件;
最后重启服务完成项目升级。
同步差量升级包的过程为:通过ANT远程命令,拷贝基于当前版本的差量升级包differential.zip至项目运行环境,替换项目目录中已存在文件并添加新文件。
清理项目冗余文件的过程为:读取该差量升级文件differential.del获取项目中删减文件,执行ANT远程命令删除当前项目中冗余文件。
完成项目升级过程为:差量升级后,执行ANT远程命令重启项目所在应用服务器,使得升级后的项目服务生效。
上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的一种基于ANT的项目差量升级方法的权利要求书的且任何所述技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。
Claims (10)
1.一种基于ANT的项目差量升级方法,其特征在于,其具体实现过程为:
首先基于项目SVN版本的对比获取差量文件,即通过ANT的SVN插件命令对项目的升级版本和当前版本执行差异对比,获取差量文件;
同步差量文件,基于上述获取到的差量文件,对已有项目进行同步,同步项目当前版本至升级版本,完成项目升级。
2.根据权利要求1所述的一种基于ANT的项目差量升级方法,其特征在于,获取差量文件的过程为:
首先获取项目升级版本;
然后获取项目升级版本与项目当前版本差量文件列表;
最后获取基于当前版本的差量升级包。
3.根据权利要求2所述的一种基于ANT的项目差量升级方法,其特征在于,获取项目升级版本过程为:在ANT脚本中通过执行SVN下载命令checkout命令,下载项目升级版本至本地目录;编译项目升级版本并将工程的class部分打包成jar库以备后续差量文件编译使用。
4.根据权利要求2所述的一种基于ANT的项目差量升级方法,其特征在于,获取项目升级版本与项目当前版本差量文件列表过程为:在ANT脚本中通过执行SVN比对命令获取项目升级版本和项目当前版本的文件差异列表,即差量文件列表,包含新增加文件及已修改文件。
5.根据权利要求2所述的一种基于ANT的项目差量升级方法,其特征在于,获取基于当前版本的差量升级包的过程为:基于差量文件列表通过编写的差量文件导出工具类导出差量文件并记录项目删减文件路径至自定义的相关文件中,使用ANT编译差量文件并生成相应的压缩包。
6.根据权利要求5所述的一种基于ANT的项目差量升级方法,其特征在于,所述差量文件导出工具类中,输入参数为:差量文件路径,即通过执行SVN比对命令获取项目升级版本和项目当前版本的差量文件列表中的文件路径;基本路径,升级版本项目基本路径与差量文件路径一起构成项目中差量文件的绝对路径;保存路径,存放差量文件的新路径,与差量文件路径一起构成了存放差量文件的绝对路径;输出结果为:输出差量文件目录及项目中删减的文件路径;该差量文件导出工具类依据差量文件列表,在项目升级版本中找出差量文件,并另存在项目差量升级目录中,且对于项目升级版本中不存在的源文件,记录该文件路径,以备后续差量升级中ANT远程删除使用。
7.根据权利要求2所述的一种基于ANT的项目差量升级方法,其特征在于,同步差量文件的过程为:
首先同步差量升级包至当前项目;
然后清理项目冗余文件;
最后重启服务完成项目升级。
8.根据权利要求7所述的一种基于ANT的项目差量升级方法,其特征在于,同步差量升级包的过程为:通过ANT远程命令,拷贝基于当前版本的差量升级包至项目运行环境,替换项目目录中已存在文件并添加新文件。
9.根据权利要求7所述的一种基于ANT的项目差量升级方法,其特征在于,清理项目冗余文件的过程为:读取该差量升级文件获取项目中删减文件,执行ANT远程命令删除当前项目中冗余文件。
10.根据权利要求7所述的一种基于ANT的项目差量升级方法,其特征在于,完成项目升级过程为:差量升级后,执行ANT远程命令重启项目所在应用服务器,使得升级后的项目服务生效。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610618982.XA CN106250148A (zh) | 2016-08-01 | 2016-08-01 | 一种基于ant的项目差量升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610618982.XA CN106250148A (zh) | 2016-08-01 | 2016-08-01 | 一种基于ant的项目差量升级方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106250148A true CN106250148A (zh) | 2016-12-21 |
Family
ID=57605788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610618982.XA Pending CN106250148A (zh) | 2016-08-01 | 2016-08-01 | 一种基于ant的项目差量升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106250148A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106685718A (zh) * | 2016-12-30 | 2017-05-17 | 杭州迪普科技股份有限公司 | 配置切换方法及装置 |
CN107239299A (zh) * | 2017-04-28 | 2017-10-10 | 北京五八信息技术有限公司 | 插件升级方法及装置 |
CN107729045A (zh) * | 2017-09-30 | 2018-02-23 | 武汉汉思信息技术有限责任公司 | 应用程序自动化版本发布方法及系统 |
CN110457395A (zh) * | 2019-08-15 | 2019-11-15 | 中国银行股份有限公司 | 假日数据的同步方法及装置 |
CN111767075A (zh) * | 2020-06-23 | 2020-10-13 | 北京思特奇信息技术股份有限公司 | 一种应用程序版本同步的方法和装置 |
CN112328295A (zh) * | 2020-11-25 | 2021-02-05 | 昆山丘钛光电科技有限公司 | 软件更新方法及装置 |
CN114942753A (zh) * | 2022-07-26 | 2022-08-26 | 北京智象信息技术有限公司 | 一种基于差量的多项目多语言生成方法、装置、设备以及介质 |
CN116501363A (zh) * | 2023-06-29 | 2023-07-28 | 杭州美创科技股份有限公司 | 软件离线快速升级方法、装置、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100185669A1 (en) * | 2009-01-09 | 2010-07-22 | Microsoft Corporation | Efficient incremental parsing of context sensitive programming languages |
CN102195804A (zh) * | 2011-03-10 | 2011-09-21 | 易程(苏州)软件股份有限公司 | 软件自动更新方法及其系统 |
CN104360845A (zh) * | 2014-10-27 | 2015-02-18 | 浪潮软件股份有限公司 | 一种基于svn的协作开发构建方法 |
CN105760183A (zh) * | 2014-12-15 | 2016-07-13 | 北京奇虎科技有限公司 | 文件处理方法、装置及通信系统 |
-
2016
- 2016-08-01 CN CN201610618982.XA patent/CN106250148A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100185669A1 (en) * | 2009-01-09 | 2010-07-22 | Microsoft Corporation | Efficient incremental parsing of context sensitive programming languages |
CN102195804A (zh) * | 2011-03-10 | 2011-09-21 | 易程(苏州)软件股份有限公司 | 软件自动更新方法及其系统 |
CN104360845A (zh) * | 2014-10-27 | 2015-02-18 | 浪潮软件股份有限公司 | 一种基于svn的协作开发构建方法 |
CN105760183A (zh) * | 2014-12-15 | 2016-07-13 | 北京奇虎科技有限公司 | 文件处理方法、装置及通信系统 |
Non-Patent Citations (1)
Title |
---|
NEILALEXANDER: "利用ant脚本自动构建svn全量/增量/减量项目升级包", 《HTTPS://BLOG.CSDN.NET/NEILALEXANDER/ARTICLE/DETAILS/38950097》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106685718A (zh) * | 2016-12-30 | 2017-05-17 | 杭州迪普科技股份有限公司 | 配置切换方法及装置 |
CN107239299A (zh) * | 2017-04-28 | 2017-10-10 | 北京五八信息技术有限公司 | 插件升级方法及装置 |
CN107239299B (zh) * | 2017-04-28 | 2020-07-17 | 北京五八信息技术有限公司 | 插件升级方法及装置 |
CN107729045A (zh) * | 2017-09-30 | 2018-02-23 | 武汉汉思信息技术有限责任公司 | 应用程序自动化版本发布方法及系统 |
CN110457395A (zh) * | 2019-08-15 | 2019-11-15 | 中国银行股份有限公司 | 假日数据的同步方法及装置 |
CN111767075A (zh) * | 2020-06-23 | 2020-10-13 | 北京思特奇信息技术股份有限公司 | 一种应用程序版本同步的方法和装置 |
CN112328295A (zh) * | 2020-11-25 | 2021-02-05 | 昆山丘钛光电科技有限公司 | 软件更新方法及装置 |
CN114942753A (zh) * | 2022-07-26 | 2022-08-26 | 北京智象信息技术有限公司 | 一种基于差量的多项目多语言生成方法、装置、设备以及介质 |
CN114942753B (zh) * | 2022-07-26 | 2022-11-18 | 北京智象信息技术有限公司 | 一种基于差量的多项目多语言生成方法、装置、设备以及介质 |
CN116501363A (zh) * | 2023-06-29 | 2023-07-28 | 杭州美创科技股份有限公司 | 软件离线快速升级方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106250148A (zh) | 一种基于ant的项目差量升级方法 | |
CA2530395C (en) | Method and system for updating versions of content stored in a storage device | |
CN107943557B (zh) | 一种基于云平台的虚拟机磁盘增量快照方法 | |
CN102368216B (zh) | 一种基于项目自动构造的流程实现方法 | |
CN102402438B (zh) | 一种补丁文件的自动合并方法、装置及通信终端 | |
CN106201614A (zh) | 一种可对多种同类软件进行链式升级的通用方法及系统 | |
CN109542875B (zh) | 一种配置文件的生成方法及装置 | |
CN100501744C (zh) | 一种文档同步方法及系统 | |
CN105302533A (zh) | 代码同步方法和装置 | |
CN104426955A (zh) | 共享文件的处理方法及云存储服务器 | |
CN106055334A (zh) | 代码管理系统及方法 | |
US20080307393A1 (en) | Synchronizing codes from multiple software configuration management systems | |
CN110633284A (zh) | 数据库中表的变更方法及装置 | |
CN102609357B (zh) | 符合autosar标准自动化测试的测试案例动态构建方法 | |
CN105260169A (zh) | 一种跨平台移植python程序的方法及装置 | |
CN105808273A (zh) | 软件升级方法和软件升级装置 | |
KR20020058537A (ko) | 개조 컴포넌트에 의한 바이너리 컴포넌트의 재정의 방법 | |
CN104090948A (zh) | 核电站海量数据处理方法、装置及系统 | |
CN106055430A (zh) | 云台摄像头的系统备份更新方法及装置 | |
CN105446819A (zh) | 一种服务连接系统及其设计方法 | |
TW200616373A (en) | Network management system configuring | |
FI20002311A (fi) | Verkkoelementin asetusten hallintamenetelmä | |
CN106934028A (zh) | 一种存储代码的方法及终端 | |
KR101599471B1 (ko) | 소스 관리 장치, 시스템 및 방법, 컴퓨터 판독 가능한 기록 매체 | |
CN103500129A (zh) | 一种备份对象的发送、备份方法、生产端、灾备端及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161221 |
|
RJ01 | Rejection of invention patent application after publication |