3

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

4

3 回答 3

3

正如 khmarbaise 所建议的,您可以使用maven-failsafe-plugin,它是 maven-surefire-plugin 的扩展。

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

  1. pre-integration-test用于设置集成测试环境。
  2. integration-test用于运行集成测试。
  3. post-integration-test用于拆除集成测试环境。
  4. verify用于检查集成测试的结果。

一般来说,在pre-integration-test 我们启动服务器的过程中

例如:

   <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 构建自定义 - 第 5 章中,您可以找到更多详细信息。

于 2014-11-06T16:55:08.530 回答
1

看来您正在编写集成测试。

您可以使用maven-failsafe-plugin。此插件默认在Maven 构建生命周期的集成测试阶段(打包阶段之后)执行...

于 2012-08-28T14:21:08.250 回答
1

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

于 2012-08-28T14:21:19.450 回答