前言:
因为在项目上经常需要打包发布新的版本,每天重复相同的工作很繁琐(其实就是想偷懒),所以想着用命令直接一键打包部署,经过一番尝试终于成了写出了一个脚本。
一、发版过程:
1、从仓库拉取最新代码
2、MVN打包编译
3、关闭服务器
4、备份
5、拷贝新的war包
6、启动服务器
二、转换成cmd命令
E:
cd E:\ferry\hw-leasing
git checkout dev_service
git pull
mvn clean install
D:
cd D:\Program Files\apache-tomcat-8.5.29-test\bin
shutdown.bat
cd ..
cd webapps
rd/s/q test
del test.war.%date:~0,4%%date:~5,2%%date:~8,2%
rename test.war test.war.%date:~0,4%%date:~5,2%%date:~8,2%
copy "E:\ferry\hw-leasing\core\target\core.war" "D:\Program Files\apache-tomcat-8.5.29-test\webapps\test.war"
cd D:\Program Files\apache-tomcat-8.5.29-test\bin
startup.bat
三、命令解释
E: ::定位到E盘
cd E:\ferry\hw-leasing ::定位到源码目录
git checkout dev_service ::切换至dev_service分支
git pull ::拉取最新代码
mvn clean install ::MVN打包发版
D: 定位到D盘
cd D:\Program Files\apache-tomcat-8.5.29-test\bin ::定位到服务器目录
shutdown.bat ::关闭服务器
cd .. ::定位到上级目录
cd webapps ::定位到下级目录
rd/s/q test ::删除项目目录 强制删除子文件夹,不用询问你是否确定
del test.war.%date:~0,4%%date:~5,2%%date:~8,2% ::删除文件(注意与删除文件夹的区别)
rename test.war test.war.%date:~0,4%%date:~5,2%%date:~8,2% ::重命名加系统当前日期后缀(当作版本号)
copy "E:\ferry\hw-leasing\core\target\core.war" "D:\Program Files\apache-tomcat-8.5.29-test\webapps\test.war" ::将打包后的WAR包拷贝到服务器的相关目录下
cd D:\Program Files\apache-tomcat-8.5.29-test\bin
startup.bat :: 启动服务器
四、批处理
将脚本写在txt中,然后将txt后缀改成.bat然后双击执行就好了,如下图所示:
五、总结
使用脚本后确实效率高了很多,省掉了文件复制删除重命名的麻烦;
写脚本的过程中也经常出错,比如删除war包错用删除文件夹命令,使用copy命令后面两个路径中如果含有空格要加引号;因为要备份文件也就是将原来的war包加上后缀版本号重命名,但是有的时候一天打包两次就会出现重名文件,所以在备份的时候要先删除(此处我觉得没有必要保留那么多版本所以直接删除了,大家可以想别的办法备份);
要写的就这么多了,晚安~