通常一个项目发布的过程是:
1.将应用服务打包
2.拷贝到对应的tomcat下
3.重启tomcat
4.备份
如何做到自动化来节省发布的时间?
写了一个windows的脚本,
1.自动化打包:
@echo off
echo "Automatic compression"
goto start
介绍:自动化压缩项目文件;
使用方法:
配置xxxEnable,表示该xxx应用要打包。
配置xxxFromPath(xxx应用class目录)
:start
::=======================我是分割线====================
::配置
::下面adminEnable、mainWebEnable...
::意思是配置admin,main-web...是否打包,1为打包,0为不打包
set adminEnable=1
set mainWebEnable=1
set serviceEnable=1
set mobileEnable=1
set logFolder=logs
::7zip安装目录
set zipToolPath=C:\Program Files\7-Zip\7z.exe
::要打包的根目录
set zipSource=D:\qbzh_package\qbzhPackage\
::打的包放在的地方
set zipResult=D:\qbzh_package\qbzhPackage\qbzhPackage.zip
::admin的class目录
set adminFromPath=D:\workspace_sunhu\tielugonganqingbaozhihui\.metadata\.plugins\org.eclipse.wst.server.core\tmp6\wtpwebapps\qbzh-admin\*.*
::admin 复制后的目录
set adminToPath=D:\qbzh_package\qbzhPackage\qbzh-admin\
::mainWeb的class目录
set mainWebFromPath=D:\workspace_sunhu\tielugonganqingbaozhihui\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\qbzh-main-web\*.*
::mainWeb复制后的目录
set mainWebToPath=D:\qbzh_package\qbzhPackage\main-web\
::service的class目录
set serviceFromPath=D:\workspace_sunhu\tielugonganqingbaozhihui\.metadata\.plugins\org.eclipse.wst.server.core\tmp2\wtpwebapps\qbzh-service\*.*
::service复制后的目录
set serviceToPath=D:\qbzh_package\qbzhPackage\qbzh\
::mobile的class目录
set mobileFromPath=D:\workspace_sunhu\tielugonganqingbaozhihui\.metadata\.plugins\org.eclipse.wst.server.core\tmp4\wtpwebapps\qbzh-mobile-api\*.*
::mobile复制后的目录
set mobileToPath=D:\qbzh_package\qbzhPackage\mobile\
::配置结束
::=======================我是分割线====================
pause
rd /s /q "%zipSource%"
if %adminEnable% == 1 (
xcopy %adminFromPath% %adminToPath% /s /e /c /y /h /r
)
if %mainWebEnable% == 1 (
xcopy %mainWebFromPath% %mainWebToPath% /s /e /c /y /h /r
)
if %serviceEnable% == 1 (
xcopy %serviceFromPath% %serviceToPath% /s /e /c /y /h /r
)
if %mobileEnable% == 1 (
xcopy %mobileFromPath% %mobileToPath% /s /e /c /y /h /r
)
"%zipToolPath%" a %zipResult% %zipSource%
echo "Automatic compression over"
pause
2.自动化发布备份
@echo off
echo "Automatic install"
goto start
使用方法:
配置
等等等等
:start
::=======================我是分割线====================
::配置
::下面adminEnable、mainWebEnable...意思是这几个项目要重新打包运行
::配置admin,main-web...是否打包,1为打包,0为不打包
echo "请务必确认要更新的应用服务"
pause
set /p version=请输入版本号并按回车;
set adminEnable=1
set mainWebEnable=0
set serviceEnable=0
set mobileEnable=0
set logFolder=logs
::7zip安装目录
set zipToolPath=C:\Program Files\7-Zip\7z.exe
set upzipPath=\qbzhResult
::要打包的根目录
set zipSource=D:\qbzh_package\qbzhPackage\
::打的包放在的地方
set zipResult=D:\qbzh_package\qbzhPackage\qbzhPackage.zip
::admin的
set adminFromPath=D:\qbzh_package\qbzhPackage\qbzhResult\qbzhPackage\qbzh-admin\*.*
::admin 复制后的目录
set adminToPath=D:\api\qbzh-admin\webapps\qbzh-admin\
set adminTomatPath=D:\api\qbzh-admin
::mainWeb的class目录
set mainWebFromPath=D:\qbzh_package\qbzhPackage\qbzhResult\qbzhPackage\main-web\*.*
::mainWeb复制后的目录
set mainWebToPath=D:\api\qbzh-main-web\webapps\qbzh-main-web\
set mainWebTomcatPath=D:\api\qbzh-main-web
::service的class目录
set serviceFromPath=D:\qbzh_package\qbzhPackage\qbzhResult\qbzhPackage\qbzh\*.*
::service复制后的目录
set serviceToPath=D:\api\qbzh-service\webapps\qbzh\
set serviceTomcatPath=D:\api\qbzh-service
::mobile的class目录
set mobileFromPath=D:\qbzh_package\qbzhPackage\qbzhResult\qbzhPackage\mobile\*.*
::mobile复制后的目录
set mobileToPath=D:\api\qbzh-mobile-api\webapps\qbzh-mobile-api\
set mobileTomcatPath=D:\api\qbzh-mobile-api
::配置结束
::=======================我是分割线====================
rd /s /q "%zipSource%"%upzipPath%
::备份
echo "备份"
::pause
xcopy %zipResult% D:\package-back\%version%\ /s /e /c /y /h /r
ren D:\package-back\%version%\qbzhPackage.zip qbzhPackage%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%.zip
echo "解压"
::pause
::解压
"%zipToolPath%" x "%zipResult%" -y -aos -o"%zipSource%"%upzipPath%
echo "copy"
::pause
if %adminEnable% == 1 (
echo "admin"
::pause
set CATALINA_HOME="%adminTomatPath%"
call %adminTomatPath%\bin\shutdown.bat
ping 127.0.0.1 -n 10
rd /s /q %adminToPath%
echo "delete adminToPath"
xcopy %adminFromPath% %adminToPath% /s /e /c /y /h /r
call %adminTomatPath%\bin\startup.bat
ping 127.0.0.1 -n 10
)
if %mainWebEnable% == 1 (
set CATALINA_HOME="%mainWebTomcatPath%"
echo "mainWeb"
::pause
call %mainWebTomcatPath%\bin\shutdown.bat
ping 127.0.0.1 -n 10
rd /s /q %mainWebToPath%
xcopy %mainWebFromPath% %mainWebToPath% /s /e /c /y /h /r
call %mainWebTomcatPath%\bin\startup.bat
ping 127.0.0.1 -n 10
)
if %serviceEnable% == 1 (
set CATALINA_HOME="%serviceTomcatPath%"
echo "service"
::pause
call %serviceTomcatPath%\bin\shutdown.bat
ping 127.0.0.1 -n 10
rd /s /q %serviceToPath%
xcopy %serviceFromPath% %serviceToPath% /s /e /c /y /h /r
call %serviceTomcatPath%\bin\startup.bat
ping 127.0.0.1 -n 10
)
if %mobileEnable% == 1 (
set CATALINA_HOME="%mobileTomcatPath%"
echo "mobile"
::pause
call %mobileTomcatPath%\bin\shutdown.bat
ping 127.0.0.1 -n 10
rd /s /q %mobileToPath%
xcopy %mobileFromPath% %mobileToPath% /s /e /c /y /h /r
call %mobileTomcatPath%\bin\startup.bat
ping 127.0.0.1 -n 10
)
echo "部署完成!!!"
pause