自定义maven构建

时间:2012-08-28 14:03:57

标签: maven customization http-unit

是否可以在不编写插件的情况下自定义maven构建生命周期?我想自定义我的项目来打包它而不运行测试,然后运行测试。背景是测试在HTTPUnit上运行,它需要一个完全构造的Web应用程序目录结构。

3 个答案:

答案 0 :(得分:3)

根据khmarbaise的建议,您可以使用maven-failsafe-plugin,这是maven-surefire-plugin的扩展。

Maven生命周期有四个阶段,非常适合您的意图:

  1. pre-integration-test用于设置集成测试 环境。
  2. integration-test用于运行集成测试。
  3. post-integration-test用于拆除集成测试 环境。
  4. verify用于检查集成的结果 测试
  5. 一般来说,在pre-integration-test we 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 中,您可以找到更多详细信息。

答案 1 :(得分:1)

您似乎正在编写集成测试。

您可以使用maven-failsafe-plugin。默认情况下,此插件在maven build lifecycle的集成测试阶段执行(在打包阶段之后)...

答案 2 :(得分:1)

出于这些目的,您需要完全针对此类事情的集成测试阶段。它是在打包阶段之后但在安装/部署阶段之前。 这可以通过使用maven-failsafe-plugin来实现。您可以找到完整的示例here