Плагин maven ant run - процесс убийства, который был порожден
Может кто-нибудь сказать мне, возможно ли порождать процесс, а затем убить этот процесс после завершения интеграционных тестов?
В настоящее время я использую плагин ant run для запуска сервера grunt connect и использую Cargo для развертывания моего приложения rest на tomcat, что позволяет мне провести интеграционный тест с работающим угловым веб-приложением, которое вызывает остальные службы.
У меня почти все есть, как я хочу, но... когда сборка завершена, сервер grunt все еще работает, потому что я установил keep alive для true.
В идеале, когда моя сборка заканчивается, я бы хотел как-то убить процесс для сервера.
1 ответ
Я вернулся к этому как к последней части, которую мне нужно было исправить, чтобы мой мультимодульный проект собирался и выполнял интеграционные тесты с угловым интерфейсом и интерфейсом Java, когда моя сборка выполняется в maven.
Последнее, что нужно сделать, чтобы убить порожденный сервер узлов, - это использовать плагин ant run для его уничтожения (на самом деле, просто!).
В любом случае, надеюсь, это поможет кому-то еще в будущем:
<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>