使用批处理文件在XAMPP中部署WAR文件

时间:2015-12-17 12:44:55

标签: java batch-file tomcat xampp war

我正在使用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 个答案:

答案 0 :(得分:0)

有几件事引起我的注意:

  1. $PWD是linuxstyle。在Windows批处理文件中使用%cd%处理同一件事。

  2. 也许您想在脚本中添加@echo off作为第一行,以防止每行两次回显到控制台。

  3. 错误消息“ pv:未找到匹配的进程”来自apache_stop.bat。您需要跟踪/调试该脚本以获取更多详细信息。 (您可能想在第一行中添加一个@echo on以获取所有输出)。

  4. 您的输出没有显示删除操作的迹象(“安装​​新战争”),我想知道为什么但怀疑从apache_stop.bat弹出的错误。但是,“启动tomcat”的输出在那里。删除部分是否按预期工作?文件会被删除吗?

  5. 提示:如果将del与通配符(*)一起使用,则可以/需要指定/Q开关以防止出现确认提示。有关详细信息,请参见命令行上的del /?
    同样在del上,您可能想使用*.*来获取“任何文件名和任何扩展名”。当前,del命令使用单个星号来查找“以没有扩展名的flsv2开头的文件名”。星号通配符在Unix / Linux和Windows中的处理方式有所不同。

  6. 建议:xcopy命令应带有引用路径(如果您的路径包含空格,则必须提供)。