【问题标题】:How to make maven execution sleep如何让maven执行休眠
【发布时间】:2016-08-18 08:03:53
【问题描述】:

场景是这样的。我们的项目由多个模块组成,一个特定模块的目的是在构建下一个模块之前暂停 maven 的执行一段时间。通过在 exec-maven-plugin 运行的 java 应用程序中调用 System.setProperty 将睡眠时间定义为上一个模块中的 JVM 属性。

我最初的想法是在这个模块中运行调用Thread.sleep的java程序,但它似乎并不影响maven的执行。我猜 exec-maven-plugin 在单独的线程中运行程序。

如何在 JVM 参数提供的一段时间内停止 maven 执行?

【问题讨论】:

  • 这很难看,但你可以在单元测试中包含Thread.sleep。我再说一遍:这很丑。而且我不会这样做。
  • exec:exec在一个单独的进程中执行,而exec:java在同一个JVM中,你使用exec-maven-plugin的哪个目标?
  • 我正在使用 exec:java

标签: java multithreading maven build jvm


【解决方案1】:

这是我找到的解决方案:

我使用 maven-antrun-plugin 代替 Java 类来停止模块内部的执行

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <version>1.8</version>
                <executions>
                    <execution>
                        <id>wait</id>
                        <phase>integration-test</phase>
                        <configuration>
                            <target>
                                <sleep seconds="${duration}" />
                            </target>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

这是原帖 Is there any maven sleep functionality?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-21
    • 2013-01-23
    • 1970-01-01
    相关资源
    最近更新 更多