Плагин 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>
Другие вопросы по тегам