对于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>
还有其他一些变化,但似乎无法让它运行。
想象一下,如果我做一场完整的战争,我会想要执行蚂蚁任务:战争也是如此,但是当我来到这里时,我会越过这座桥。
答案 0 :(得分: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的所有阶段进行预集成测试。您可以在阶段“package”中为目标“爆炸”定义war插件执行,并在阶段“pre-integration-test”阶段为目标“run”定义antrun执行。
默认生命周期中没有阶段“战争”。因此,上面的示例不适用于默认生命周期。对于具有自定义阶段的自定义生命周期,您需要自定义插件。