高校平台的项目已经接触了一段时间了。项目是使用maven进行管理,jboss做服务器。jar管理得好了,jboss也比tomcat支持的规范更全了。但是有一点却并不怎么好用。那就是每次调试部署jar时,都得手动去删除jar、缓存文件、日志文件。一次还可以,二次就有点烦了,而且jar越多,越麻烦,一个次序搞错了,就可能会报错。
当然有一个很简单的解决办法就是将所有的包进行编号,比如1.gxpt_entity_user.jar,2.gxpt_mgr_user.jar等,这样扔进去都或自动按顺序进行部署。但是总不能每次都需要改名称。
秉承着将一切重复性的工作都用工具代替,第一时间想到了去网上搜。但是转念又一想,这种个性化的脚本估计只能靠自己写。去网上尝试搜了一些相关工具,百度果然“答非所问”。所以还是自己动手写吧。
我的思路是:写2个bat文件,第一个是收集项目中的jar和war,并放入到临时文件中,然后去jboss中清除同名的jar和war,并清除缓存和日志文件。然后启动jboss。第二个bat脚本则是从临时文件中按“实体jar—>公共jar—>Service层jar—>war” 的顺序将各种jar和war按次序部署到jboss中。
经历了N多实验终于成功了,再也不用手动去删除、复制jar和war了。又经过多次的修改,又分不同情况,添加了多个bat脚本,当然最基本的还是v1.0的那2个jar。结果jar多了,找起来又费力了。所以又做了一个统一的入口脚本“Start__Me.bat”。虽然入口统一了,但是还是脚本还是太多了。最后的最后又用工具把所有的bat脚本封装成一个exe,入口还是Start__Me.bat。最终变成了一个“gxpt快速部署脚本——客户端版v1.0”。突然发现世界一下子清静了。
脚本很成功。现在已经更新到v2.0版本了。附一个入口脚本:
@echo off color 0a title gxpt快速部署脚本v2.0 :start @echo --------------------------------- @echo 请选择操作: @echo 1.JBoss启动前重新部署[需要手动启动jboss] @echo 2.JBoss运行时重新部署[jboss正在运行时,选择我] @echo 3.直接部署jar包[清缓存,启jboss,部jar包,一站式服务] @echo 4.启动jboss[清缓存,启动jboss] @echo 5.清除本地临时文件[清除脚本运行过程中的临时文件] @echo 6.清除jboss[清除jboss中的jar、缓存+本地临时文件] @echo 7.打开项目根目录[项目源代码目录] @echo 8.打开热部署目录[jboss\server\default\deploy] @echo 9.重新启动 @echo a.直接启动jboss @echo b.清空jboss缓存,启动jboss @echo c.打开日志文件 @echo 0.退出 @echo --------------------------------- set /p choice=请选择: if %choice%==1 goto one if %choice%==2 goto two if %choice%==3 goto three if %choice%==4 goto four if %choice%==5 goto five if %choice%==6 goto six if %choice%==7 goto seven if %choice%==8 goto eight if %choice%==9 goto nine if %choice%==a goto A if %choice%==b goto B if %choice%==c goto C if %choice%==0 goto zero cls @echo 选择错误,请重新选择 goto start :one echo ------------------------------ @echo.>>log.txt echo 已选择:1.JBoss启动前重新部署[需要手动启动jboss]>>log.txt @echo.>>log.txt echo 调用CollectJars[JBoss启动前重新部署].bat start CollectJars[JBoss启动前重新部署].bat goto ok :two echo ------------------------------ @echo.>>log.txt echo 已选择:2.JBoss运行时重新部署[jboss正在运行时,选择我]>>log.txt @echo.>>log.txt echo 调用CollectJars[JBoss运行时重新部署].bat start CollectJars[JBoss运行时重新部署].bat goto ok :three echo ------------------------------ @echo.>>log.txt echo 已选择:3.直接部署jar包[清缓存,启jboss,部jar包,一站式服务]>>log.txt @echo.>>log.txt echo 调用jbossDeploy[直接部署jar包].bat start jbossDeploy[直接部署jar包].bat goto ok :four echo ------------------------------ @echo.>>log.txt echo 已选择:4.启动jboss[清缓存,启动jboss]>>log.txt @echo.>>log.txt echo 调用jbossStart.bat start jbossStart.bat goto ok :five echo ------------------------------ @echo.>>log.txt echo 已选择:5.清除本地临时文件[清除脚本运行过程中的临时文件]>>log.txt @echo.>>log.txt echo 调用Clean.bat start Clean.bat goto ok :six echo ------------------------------ @echo.>>log.txt echo 已选择:6.清除jboss[清除jboss中的jar、缓存+本地临时文件]>>log.txt @echo.>>log.txt echo 调用CleanJBoss[完全清除Jboss].bat start CleanJBoss[完全清除Jboss].bat goto ok :seven echo ------------------------------ @echo.>>log.txt echo 已选择:7.打开项目根目录[项目源代码目录]>>log.txt @echo.>>log.txt start %PROJ_HOME% goto ok :eight echo ------------------------------ @echo.>>log.txt echo 已选择:8.打开热部署目录[jboss\server\default\deploy]>>log.txt @echo.>>log.txt start %JBOSS_HOME%\server\default\deploy goto ok @echo b.清空jboss缓存,启动jboss :nine echo ------------------------------ @echo.>>log.txt echo 已选择:9.重新启动>>log.txt @echo.>>log.txt start Start__Me.bat exit :A echo ------------------------------ @echo.>>log.txt echo 已选择:a.直接启动jboss>>log.txt @echo.>>log.txt start %JBOSS_HOME%\bin\run.bat -b 0.0.0.0 goto ok :B echo ------------------------------ @echo.>>log.txt echo 已选择:b.清除jboss[清除jboss中的jar、缓存+本地临时文件]>>log.txt @echo.>>log.txt echo 调用CleanJBoss[部分清除Jboss].bat start CleanJBoss[部分清除Jboss].bat goto ok :C @echo.>>log.txt echo 已选择:c.打开日志文件>>log.txt @echo.>>log.txt start log.txt goto ok :zero @echo.>>log.txt echo 已选择:0.退出>>log.txt @echo.>>log.txt if exist log.txt del log.txt if exist tmp rd /s /q tmp if exist tmp.txt del tmp.txt if exist interface.txt del interface.txt exit :ok set choice=-1 cls goto start )
工具虽小,但是却十分省时省力,还不容易出错,大大提高了工作效率。而我们也要将“一切重复性的工作都用工具来代替”的意识装进脑子里,寻找一切可以“偷懒”的办法,去方便自己。用别人的工具是借助巨人的肩膀让自己站得更高,没有条件,创造条件,没有人能阻挡我们“偷懒”的渴望!