转载

一个简单好用的java增量更新工具

java web 上正式的时候总是会需要更新代码,但是要求不能全量更新代码,只能提供增量更新包,减少不必要的更新。

但是呢,自己修改的文件那么多,怎么破,一个个的找出来,新建文件夹,按位置放好,这种做法不是我们这群懒人的方式,我们要的都是一键解决问题。因此有了这个项目

原理

本地篇

主要使用文件的lastModified()方法获取文件的最后修改时间,然后把最后编译的文件小于设定的时间来进行筛选。但是有一个问题是,修改的时候如果重新编译的话,就失灵了。

svn篇

使用svnkit-1.9.3.jar 包访问svn的代码日志,获取修改的代码,然后根据本地的编译代码位置进行拼装,需要保证的是本地的代码和svn的代码保持一致,并编译通过。

具体的使用步骤如下

使用本地的更新时间来更新

1.添加配置文件到/config/项目简称.xml;配置查找文件的中间件目录;配置相关需要更新的文件类型(后缀)

<base_dir>{root}/update/jy_zq_demo/{ver}_{time}/ROOT</base_dir>
<search_dir>D:/tomcat-8.5.32-8095/webapps/ROOT</search_dir>
<search_filter>*.jsp||*.html||*.htm||*.swf||*.xml||*.css||*.js||*.xsl||*.png||*.jpg||*.gif||*.class</search_filter>
<from_dir>D:/tomcat-8.5.32-8095/webapps/ROOT</from_dir>
<to_dir></to_dir>
复制代码

修改search_dir和from_dir的路径

2.配置修改时间(将此时间之后修改的文件加入到更新列表);在/ctrl/lasttime.properties文件中添加该时间

3.在run.bat文件中添加对应的操作。(不必要,window)可用 3*替换

echo * 2:生成更新数据 (jy_zq)                 *

if %in%==2 goto :2

:2
start createUpdate.bat jy_zq_svn
goto :begin

复制代码

3*

cd ..../ProgramTool/CodeUpdateV2.0

C:/ProgramTool/CodeUpdateV2.0 java ctrl.FileSearch jy_zq

注意事项:上面三项中配置的名字须保证一致。

使用svn的更新时间来更新

1.拷贝svnkit-1.9.3.jar 文件到%JAVA_HOME%/lib/svnkit-1.9.3.jar 2.添加系统环境变量 类似:

.;%JAVA_HOME%/lib;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/svnkit-1.9.3.jar 3.查看svn中要更新的版本,找到更新时间 4。更改config/jy_zq_svn.xml中的svn相关配置和base_dir

<type>svn</type>
    <svn_username>{username}</svn_username>
    <svn_password>{password}</svn_password>
    <svn_url>http://host:port/svn/2018</svn_url>
    <svn_path>//web-admin</svn_path>
    <svn_time>2019-02-21 14:00:00</svn_time>  
    <java_path>/src</java_path>
    <web_path>/web</web_path>  
    
    <base_dir>{root}/update/jy_zq/{ver}_{time}/ROOT</base_dir>
    <search_dir>D:/tomcat-8.5.32-8080/webapps/ROOT</search_dir>
    <search_filter>*.jsp||*.html||*.htm||*.swf||*.xml||*.css||*.js||*.xsl||*.png||*.jpg||*.gif||*.class</search_filter>
    <from_dir>D:/tomcat-8.5.32-8080/webapps/ROOT</from_dir>
    <to_dir></to_dir>
复制代码

修改svn_username,svn_password,svn_url,svn_path,svn_time,java_path,web_path和编译路径search_dir,from_dir

原文  https://juejin.im/post/5c6f6aebe51d450983025805
正文到此结束
Loading...