在XAMPP中使用Batch文件部署WAR文件。

问题描述 投票:2回答:1

我在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>

我哪里做错了?

java batch-file tomcat xampp war
1个回答
0
投票

有几件事让我眼前一亮。

  1. $PWD 是linux风格。使用 %cd% 在Windows批处理文件中也是如此。

  2. 也许你想添加 @echo off 作为你的脚本的第一行,以防止每行在控制台有双重回声。

  3. 错误信息 "pv: 没有找到匹配的进程 "这个错误信息来自于 apache_stop.bat. 你需要跟踪调试该脚本以了解更多细节。(你可能需要在脚本中添加一个 @echo on 在第一行得到每一个输出)。)

  4. 你的输出没有显示删除操作的痕迹("安装新的战争"),我不知道为什么,但怀疑错误从以下方面弹出 apache_stop.bat. 但是,"启动tomcat "的输出是存在的。删除部分是否能正常工作?文件会被删除吗?

  5. 提示:如果你使用 del 带通配符(*)你可以指定 /Q 开关以防止确认提示。请看 del /? 的命令行上了解详情。同时在 del,你可能想使用 *.* 得到 "任何文件名后有任何扩展名"。目前使用单星号的 del 命令正在查找 "以flsv2开头的无扩展名 "的文件名。星号通配符在UnixLinux和Windows中的处理方式不同。

  6. 建议使用星号通配符。在 xcopy 命令中的路径应该加引号(如果你的路径包含空格,则必须加引号)。

© www.soinside.com 2019 - 2024. All rights reserved.