如何停止Maven执行

时间:2017-08-31 06:56:45

标签: maven maven-exec-plugin

我有一个模拟服务器,我需要在运行自动化测试之前在Jenkins中启动,然后在我的测试运行后停止模拟服务器。

此模拟服务器是一个maven项目,正在使用exec-maven-plugin。我可以通过运行命令mvn exec:java来启动此服务器。但是我无法通过詹金斯阻止这个maven项目。我已经阅读过它并且大多数答案告诉我找到这个Maven项目的进程ID然后杀掉它。是否有更简洁的方法来阻止这个项目?

3 个答案:

答案 0 :(得分:0)

您需要使用属于maven生命周期的goals启动和停止服务器。

取自this answer

的示例
<plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.1</version>
       <executions>
          <execution>
            <id>tomcat-run</id>
            <goals>
              <goal>run-war-only</goal>
            </goals>
            <phase>pre-integration-test</phase>
                <configuration>

                    <fork>true</fork> 
                </configuration>

           </execution>
           <execution>
            <id>tomcat-shutdown</id>
            <goals>
              <goal>shutdown</goal>
            </goals>
            <phase>post-integration-test</phase>
          </execution>
        </executions>
      </plugin>

答案 1 :(得分:0)

这个问题的关键确实是你不知道processId。请考虑使用exec:exec代替async。您会在默认情况下看到asyncDestroyOnShutdown设置为true,这意味着一旦Maven关闭它就会关闭。

答案 2 :(得分:0)

如果您正在运行linux:

ps aux |grep <project-name>然后是kill -9 <process id>