一個簡單好用的java增量更新工具

muxiaobai發表於2019-02-22

更新工具使用指南

Github參考

起因

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

注意事項

編譯路徑不能包含中文,配置檔案中使用反斜槓/

run : java ctrl.FileSearch jy_zq

支援原創,求star,搜尋muxiaobai,找CodeUpdate倉庫github.com/muxiaobai/C…

相關文章