2012-08-28 106 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你可以找到更多的细节。