【问题标题】:Customize maven build自定义 Maven 构建
【发布时间】:2012-08-28 14:03:56
【问题描述】:

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

【问题讨论】:

    标签: maven customization http-unit


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2011-12-19
          • 2013-09-29
          • 2016-02-12
          • 1970-01-01
          • 2017-04-15
          • 2018-12-16
          • 1970-01-01
          • 2017-03-06
          • 1970-01-01
          相关资源
          最近更新 更多