2016-08-18 60 views
0

情景是這樣的。我們的項目由多個模塊組成,其中一個特定模塊的目的是在構建下一個模塊之前的一段時間內停止maven的執行。通過在java應用程序中運行exec-maven-plugin,調用System.setProperty,睡眠時間被定義爲前一個模塊中的JVM屬性。如何讓Maven執行睡眠

我最初的想法是運行java程序,在本模塊中調用Thread.sleep,但它似乎不影響Maven執行。我猜exec-maven-plugin在單獨的線程中運行程序。

如何在一段時間內停止Maven執行,這是作爲JVM參數提供的?

+0

這很醜陋,但你可以在單元測試中包含一個''Thread.sleep''。我再說一遍:這很醜陋。我不會這樣做。 – f1sh

+0

'exec:exec'在一個分離的進程中執行,而'exec:java'在同一個JVM中,你使用'exec-maven-plugin'的目標是什麼? –

+0

我使用的是exec:java –

回答

0

這裏是我找到了解決辦法:

代替Java類的,我用Maven的antrun-插件停止內部模塊

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