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

Java 使用批处理文件在XAMPP中部署WAR文件,java,batch-file,tomcat,xampp,war,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 .

我正在使用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>

我哪里做错了???

有几件事让我大吃一惊:

  • $PWD
    是linuxstyle。在Windows批处理文件中使用
    %cd%
    进行同样的操作

  • 也许您想将
    @echo off
    添加为脚本的第一行,以防止每行向控制台进行双重回显

  • 错误消息“pv:未找到匹配进程”来自
    apache\u stop.bat
    。您需要跟踪/调试该脚本以了解更多详细信息。(您可能希望在第一行中添加一个
    @echo on
    ,以获取每个输出)

  • 您的输出并没有显示删除操作(“安装新war”)的迹象,我想知道为什么会出现来自
    apache\u stop.bat
    的错误。但是,“启动tomcat”的输出是存在的。删除部件是否按预期工作?文件会被删除吗

  • 提示:如果将
    del
    与通配符(
    *
    )一起使用,则可以/需要指定
    /Q
    开关以防止出现确认提示。有关详细信息,请参见命令行上的
    del/?

    同样在
    del
    上,您可能希望使用
    *.
    获取“任何文件名后跟任何扩展名”。当前,带有单个星号的
    del
    命令正在查找文件名“以flsv2开头,不带扩展名”。Unix/Linux和Windows对星号通配符的处理方式不同

  • 建议:
    xcopy
    命令应该引用路径(如果路径包含空格,则必须引用)