我在Xampp中使用一个War文件来部署我的应用程序,由于我多次更新代码,我需要更换War文件,并重新启动Apache、Tomcat服务。问题是,由于我多次更新代码,我需要替换 war 文件并重新启动 Apache、tomcat 服务。我想使用一个批处理文件来节省时间。
我是按照以下3个步骤来部署war文件的。
1)停止Apache & Tomcat服务。
2) 删除现有的 war 文件和它对应的文件夹。
3) 启动Apache & Tomcat服务。
批量脚本..
echo "+++Deploy source in $PWD+++"
echo "+++ Shutting down tomcat ..."
call apache_stop.bat
call catalina_stop.bat
timeout 5 > NUL
echo "+++ Installing new war ..."
DEL "C:\xampp\tomcat\webappss\flsv2*"
xcopy /s C:\Users\Hp\git\flsv2-lucy\build/flsv2.war C:\xampp\tomcat\webapps
echo "+++ Starting up tomcat ..."
call apache_start.bat
call catalina_start.bat
timeout 5 > NUL
遗憾的是,上面的代码不能用。每当我从xampp文件夹中运行上述脚本时,我在cmd提示符中得到一个错误信息...
错误信息...
C:\xampp>deploy_local.bat
C:\xampp>echo "+++Deploy source in $PWD+++"
"+++Deploy source in $PWD+++"
C:\xampp>echo "+++ Shutting down tomcat ..."
"+++ Shutting down tomcat ..."
C:\xampp>call apache_stop.bat
pv: No matching processes found
Mysql shutdowm ...
pv: No matching processes found
"+++ Starting up tomcat ..."
C:\xampp>
我哪里做错了?
有几件事让我眼前一亮。
$PWD
是linux风格。使用 %cd%
在Windows批处理文件中也是如此。
也许你想添加 @echo off
作为你的脚本的第一行,以防止每行在控制台有双重回声。
错误信息 "pv: 没有找到匹配的进程 "这个错误信息来自于 apache_stop.bat
. 你需要跟踪调试该脚本以了解更多细节。(你可能需要在脚本中添加一个 @echo on
在第一行得到每一个输出)。)
你的输出没有显示删除操作的痕迹("安装新的战争"),我不知道为什么,但怀疑错误从以下方面弹出 apache_stop.bat
. 但是,"启动tomcat "的输出是存在的。删除部分是否能正常工作?文件会被删除吗?
提示:如果你使用 del
带通配符(*
)你可以指定 /Q
开关以防止确认提示。请看 del /?
的命令行上了解详情。同时在 del
,你可能想使用 *.*
得到 "任何文件名后有任何扩展名"。目前使用单星号的 del
命令正在查找 "以flsv2开头的无扩展名 "的文件名。星号通配符在UnixLinux和Windows中的处理方式不同。
建议使用星号通配符。在 xcopy
命令中的路径应该加引号(如果你的路径包含空格,则必须加引号)。