如何停止执行Maven



我有一个模拟服务器,在运行自动化测试之前,我需要在詹金斯(Jenkins)开始,然后在测试运行后停止模拟服务器。

此模拟服务器是一个Maven项目,正在使用exec-maven-plugin。我可以通过运行命令mvn exec:java来启动此服务器。但是,我无法通过Jenkins停止这个Maven项目。我已经阅读了有关它的信息,大多数答案都告诉您找到此Maven项目的过程ID,然后杀死它。是否有更清洁,更轻松的方法来停止此项目?

您需要使用属于Maven生命周期的目标开始并停止并停止确定。

从此答案中获取的一个例子

<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>

这个问题的关键确实是您不知道ProcessID。考虑与异步使用exec:exec。您会看到,默认情况下,Asyncdestroyonshutdown设置为true,这意味着一旦Maven关闭,它将关闭。

如果您正在运行Linux:

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

最新更新