我正在使用War文件在Xampp中部署我的应用程序。问题是,由于我多次更新代码,我需要替换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>
我哪里错了?
答案 0 :(得分:0)
有几件事引起我的注意:
$PWD
是linuxstyle。在Windows批处理文件中使用%cd%
处理同一件事。
也许您想在脚本中添加@echo off
作为第一行,以防止每行两次回显到控制台。
错误消息“ pv:未找到匹配的进程”来自apache_stop.bat
。您需要跟踪/调试该脚本以获取更多详细信息。 (您可能想在第一行中添加一个@echo on
以获取所有输出)。
您的输出没有显示删除操作的迹象(“安装新战争”),我想知道为什么但怀疑从apache_stop.bat
弹出的错误。但是,“启动tomcat”的输出在那里。删除部分是否按预期工作?文件会被删除吗?
提示:如果将del
与通配符(*
)一起使用,则可以/需要指定/Q
开关以防止出现确认提示。有关详细信息,请参见命令行上的del /?
。
同样在del
上,您可能想使用*.*
来获取“任何文件名和任何扩展名”。当前,del
命令使用单个星号来查找“以没有扩展名的flsv2开头的文件名”。星号通配符在Unix / Linux和Windows中的处理方式有所不同。
建议:xcopy
命令应带有引用路径(如果您的路径包含空格,则必须提供)。