使用批处理文件在 XAMPP 中部署 WAR 文件
Posted
技术标签:
【中文标题】使用批处理文件在 XAMPP 中部署 WAR 文件【英文标题】:Deploy WAR file in XAMPP using Batch file 【发布时间】:2016-03-23 22:37:33 【问题描述】:我正在使用 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>
我哪里错了??
【问题讨论】:
【参考方案1】:有几件事让我印象深刻:
$PWD
是 linuxstyle。在 Windows 批处理文件中使用 %cd%
来做同样的事情。
也许您想在脚本的第一行添加@echo off
,以防止每行重复回显到控制台。
错误消息“pv: No matching processes found”来自apache_stop.bat
。您需要跟踪/调试该脚本以获取更多详细信息。 (您可能想在第一行添加@echo on
以获取每个输出)。
您的输出没有显示删除操作的迹象(“安装新战争”),我想知道为什么但怀疑从apache_stop.bat
弹出错误。但是,“启动tomcat”的输出就在那里。删除部分是否按预期工作?文件会被删除吗?
提示:如果您使用带有通配符 (*
) 的 del
,您可以/需要指定 /Q
开关以阻止确认提示。有关详细信息,请参阅命令行上的del /?
。
同样在del
上,您可能希望使用*.*
来获取“任何文件名后跟任何扩展名”。当前使用单个星号,del
命令正在查找“以 flsv2 开头且无扩展名”的文件名。 Unix/Linux 和 Windows 对星号通配符的处理方式不同。
建议:xcopy
命令应该引用路径(如果您的路径包含空格,则必须使用)。
【讨论】:
以上是关于使用批处理文件在 XAMPP 中部署 WAR 文件的主要内容,如果未能解决你的问题,请参考以下文章
Tomcat 在所有新部署的 WAR 文件上报告 404 错误?