2011-03-16 94 views
2

对于Maven构建,我需要在用war插件制作爆炸目录后复制一些文件。战争期间/之后是否可以运行antrun插件:爆炸的目标是什么?如果是的话,我会如何做到这一点?我试过了:在战争中运行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> 

和其他几个变化,但似乎无法让它运行。

Idealy如果我做了一场全面的战争,我希望蚂蚁的任务能够运行:战争也是如此,但当我来到这个战场时,我会穿过这座桥。

回答

0

至少有两种方法来实现它:

使用插件

的直接调用当调用mvn war:exploded奥德mvn 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的所有阶段了预集成测试。您可以在阶段“包”中为目标“爆炸”定义战争插件执行,并在阶段“预集成测试”中为目标“运行”定义执行者执行。


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

相关问题