2012-08-28 104 views
3

是否可以在不編寫插件的情況下自定義maven構建生命週期?我想定製我的項目以便在不運行測試的情況下進行打包,然後運行測試。背景是測試在HTTPUnit上運行,它需要一個完全構建的Web應用程序目錄結構。自定義maven構建

回答

1

爲了這些目的,您需要完全適用於此類事物的集成測試階段。它在包裝階段之後,但在安裝/部署階段之前。 這可以通過使用maven-failsafe-plugin來實現。你可以找到一個完整的例子here

3

正如khmarbaise建議您可以使用maven-failsafe-plugin這是maven-surefire插件的擴展。

Maven的生命週期有四個階段適合你的意圖:

  1. pre-integration-test設立集成測試 環境。
  2. integration-test運行集成測試。
  3. post-integration-test用於拆除集成測試 環境。
  4. verify用於檢查集成結果 測試。

pre-integration-testwe start the server

例如,一般地講:

<executions> 
     [...] 
     <execution> 
     <id>start-jetty</id> 
     <phase>pre-integration-test</phase> 
     <goals> 
      <goal>run-exploded</goal> 
     </goals> 
     <configuration> 
      <scanIntervalSeconds>0</scanIntervalSeconds> 
      <daemon>true</daemon> 
     </configuration> 
     </execution> 
     <execution> 
     <id>stop-jetty</id> 
     <phase>post-integration-test</phase> 
     <goals> 
      <goal>stop</goal> 
     </goals> 
     </execution> 

我使用這個插件與Hudson;在Maven Build Customization - Chapter 5你可以找到更多的細節。