增量打包DOC版
压缩zip的命令有的系统没有的自己去下载一个,否则关闭压缩zip的命令。
有需要的自行更改,这是满足我需求的。
执行 publish.bat 即可,当然需要将文件清单写好放在 resources.txt中。
@REM author:莫大人 date:20160118 @echo off ECHO =================增量打包工具================= ECHO 作者:莫大人 20160118 setlocal enabledelayedexpansion @REM 工程编译目录 @REM iTreasuryEJB SET PROJECT_HOME=E:\installFile\rt\jboss-4.0.5.GA\server\default\deploy\ear.ear\iTreasuryEJB.jar @REM SET PROJECT_HOME_TMP=E:\installFile\rt\jboss-4.0.5.GA\server\default\deploy\ear.ear\iTreasuryEJB.jar @REM iTreasuryWEB.war\WEB-INF SET PROJECT_HOME=E:\installFile\rt\jboss-4.0.5.GA\server\default\deploy\ear.ear\iTreasuryWEB.war\WEB-INF @REM SET PROJECT_HOME_TMP=E:\installFile\rt\jboss-4.0.5.GA\server\default\deploy\ear.ear\iTreasuryWEB.war\WEB-INF @REM iTreasuryWEB.war\iTreasury-settlement SET PROJECT_HOME=E:\installFile\rt\jboss-4.0.5.GA\server\default\deploy\ear.ear\iTreasuryWEB.war\iTreasury-settlement\ @REM SET PROJECT_HOME_TMP=E:\installFile\rt\jboss-4.0.5.GA\server\default\deploy\ear.ear\iTreasuryWEB.war\iTreasury-settlement\ echo 工程编译目录 %PROJECT_HOME% @REM 资源文件 SET RESOURCE_FILE=resource.txt echo 资源文件 %RESOURCE_FILE% @REM 备份文件夹 SET BACKUP=BACKUP @REM 是否压缩开关 1 开 0 关 SET ZIP_CMD=0 @REM 当前目录 SET CURRENT_DIR=%cd% echo 当前目录 %CURRENT_DIR% @REM 目标目录 SET TARGET_PATH=%CURRENT_DIR%\%BACKUP% @REM 清除缓存 IF EXIST %TARGET_PATH% RMDIR /S /Q %TARGET_PATH% IF EXIST %CURRENT_DIR%\Project.zip DEL %CURRENT_DIR%\Project.zip @REM 判断是否存在资源文件,不存在创建一个并提示 IF NOT EXIST %CURRENT_DIR%\%RESOURCE_FILE% (@ECHO ###第一行不做处理 请将需要打包的文件目录拷到此处如 \classes\com\midea\account\service\AccountService.class>%RESOURCE_FILE%&&goto :eof) IF NOT EXIST %TARGET_PATH% MKDIR %TARGET_PATH% @REM 循环查询资源文件中的文件,存在则复制(保持目录结构),输出日志到 stdout.log ECHO %date% ====================增量打包日志输出开始====================>>stdout.log @REM CLASS 添加 \WEB-INF 之后复制 @REM for /f "skip=1 tokens=1,* delims=:" %i in ('findstr /s /e "class" %RESOURCE_FILE%') do (call :copyFile \WEB-INF%%j) for /f "skip=1" %%i in (%RESOURCE_FILE%) do (call :copyFile %%i) ECHO %date% ====================增量打包日志输出结束====================>>stdout.log @REM 打包,如果增量文件为空那么不压缩 DIR /B %TARGET_PATH%|FINDSTR .*>nul&&(@ECHO 存在资源文件)||(@ECHO 不存在资源文件>>stdout.log&&goto :eof) cd %TARGET_PATH% mkdir WEB-INF if exist classes move classes WEB-INF IF %ZIP_CMD% EQU 1 (call :toZip) ECHO =================增量打包结束================= PAUSE goto :eof @REM 复制 :copyFile @REM 源文件 SET SRC_FILE=%PROJECT_HOME_TMP%%1% @REM 目标文件 SET TARGET_FILE=%TARGET_PATH%%1% @REM ECHO 假设源文件在%SRC_FILE%>>stdout.log @REM 如果源文件为空那么不复制,并提示 IF "%SRC_FILE%"=="" (ECHO %SRC_FILE% 不存在,请将增量文件列表写入 %RESOURCE_FILE%>>stdout.log&&goto :eof) @REM 判断源文件是否存在,不存在则记录 stdout.log @REM 一定要使用ECHO OFF和ECHO ON,因为这两个可以让系统对期间的代码进行整块操作,还有就是需要主要,IF判断的括号一定要写在IF的这行中。 IF NOT EXIST %SRC_FILE% ( SET SRC_FILE=%PROJECT_HOME%%1% SET TARGET_FILE=%TARGET_PATH%/WEB-INF/%1% ) @REM ECHO 修正后的源文件为%SRC_FILE%>>stdout.log IF NOT EXIST %SRC_FILE% (ECHO 找不到资源 %SRC_FILE% >>stdout.log&&goto :eof) @REM 目标文件目录 for %%a in (%TARGET_FILE%) do SET TARGET_TEMP=%%~dpa @REM 目标文件目录是否存在,不存在则创建 IF NOT EXIST %TARGET_TEMP% MKDIR %TARGET_TEMP% @REM 复制文件开始 COPY /y %SRC_FILE% %TARGET_TEMP% goto :eof @REM 打包 :toZip cd %TARGET_PATH% zip -qr %CURRENT_DIR%\Project.zip * goto :eof