使用批处理文件在 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 错误?

无法在jboss AS 7.1.1中部署war文件

自动部署批处理

.war 文件未部署在 Elastic Beanstalk 环境中

在hybris tomcat中部署war文件

在Tomcat api中部署war文件后不起作用