在战争期间逃跑:爆炸

时间:2011-03-16 12:44:11

标签: maven war maven-antrun-plugin exploded

对于Maven构建,我需要在使用war插件制作爆炸目录后复制一些文件。是否有可能在战争期间/之后运行antrun插件:爆炸目标?如果是这样,我该怎么做?我试过了:

<build>
  <plugins>
    <plugin>
      <artifactId>maven-antrun-plugin</artifactId>
      <executions>
        <execution>
          <phase>war</phase>
          <goals>
            <goal>exploded</goal>
          </goals>
          <configuration>
            <tasks>
              <echo>Running ant task...</echo>
            </tasks>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

还有其他一些变化,但似乎无法让它运行。

想象一下,如果我做一场完整的战争,我会想要执行蚂蚁任务:战争也是如此,但是当我来到这里时,我会越过这座桥。

1 个答案:

答案 0 :(得分:0)

至少有两种方法可以实现它:

使用插件的直接调用

调用mvn war:explodedmvn war:war时,您只能调用特定插件的特定目标。没有其他插件被执行。 pom.xml中定义的执行不相关。因此,您只能直接调用多个插件目标,例如mvn war:exploded antrun:run

但是在构建多个模块时要小心:mvn war:exploded antrun:run在每个模块的war插件之后运行antrun。而mvn war:exploded; mvn antrun:run为所有模块运行war插件,然后为所有模块运行。

使用插件的生命周期绑定

调用mvn pre-integration-test时,您可以调用default lifecycle的所有阶段进行预集成测试。您可以在阶段“package”中为目标“爆炸”定义war插件执行,并在阶段“pre-integration-test”阶段为目标“run”定义antrun执行。


默认生命周期中没有阶段“战争”。因此,上面的示例不适用于默认生命周期。对于具有自定义阶段的自定义生命周期,您需要自定义插件。