2016-05-05 4 views
0

Может кто-нибудь сказать мне, возможно ли запустить процесс, а затем убить этот процесс, когда завершающие тесты интеграции завершатся?maven ant run plugin - процесс убийства, который был порожден

В настоящее время я использую плагин ant run, чтобы запустить сервер соединения grunt, и я использую груз для развертывания моего приложения для отдыха в tomcat, это позволяет мне интегрировать тест против работающего углового веб-приложения, которое вызывает службы отдыха.

У меня почти все, что я хочу, но .. когда сборка закончилась, сервер покачания по-прежнему работает, потому что я установил его в положение true.

В идеале, когда моя сборка заканчивается, я хотел бы как-то убить процесс для сервера.

+0

Что-то вроде этого: http://stackoverflow.com/questions/35453479/gracefully-stopping-a-java-process-started-by -maven-antrun-плагин? – Tunaki

+0

Возможно, но я не создаю java-процесс, я на самом деле создаю cmd или shell, а затем использую его, чтобы запустить скрипт grunt, который запускает сервер. Можете ли вы использовать это, чтобы убить командную строку? – berimbolo

ответ

0

Я вернулся к этому как заключительная часть, которую мне нужно было исправить, чтобы получить мое многомодульное проектное здание и выполнить интеграционные тесты против углового переднего конца и задней части java, так как моя сборка работает в maven.

Последнее, что нужно сделать, чтобы убить сервер узлов, который порожден, - это использовать плагин ant run, чтобы его убить (просто!).

Во всяком случае hopefull это может помочь кому-то еще в будущем:

<plugin> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <version>1.7</version> 
      <executions> 
       <execution> 
        <id>Run grunt integration-test task in pre-integration-test phase</id> 
        <phase>pre-integration-test</phase> 
        <configuration> 
         <target name="starting"> 
          <echo> 

          </echo> 
          <exec executable="cmd" spawn="true" dir="${project.basedir}" 
           osfamily="windows"> 
           <arg line="/c grunt int-test --no-color > grunt.status " /> 
          </exec> 
          <exec executable="bash" spawn="true" dir="${project.basedir}" 
           osfamily="unix"> 
           <arg line="grunt int-test --no-color > grunt.status" /> 
          </exec> 
         </target> 
        </configuration> 
        <goals> 
         <goal>run</goal> 
        </goals> 
       </execution>        
       <execution> 
        <id>Kill NodeServer in post-integration-test phase</id> 
        <phase>post-integration-test</phase> 
        <configuration> 
         <target name="ending"> 
          <echo> 

          </echo> 
          <exec executable="cmd" spawn="true" dir="${project.basedir}" 
           osfamily="windows"> 
           <arg line="/c Taskkill /IM node.exe /F " /> 
          </exec> 
          <exec executable="bash" spawn="true" dir="${project.basedir}" 
           osfamily="unix"> 
           <arg line="kill -9 $(ps aux | grep '\snode\s' | awk '{print $2}')" /> 
          </exec> 
         </target> 
        </configuration> 
        <goals> 
         <goal>run</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin>