如何在单个阶段中执行多个maven插件并设置各自的执行顺序?

Yan*_*eve 17 plugins maven-2 flow-control phase

我想将maven生命周期中的某些阶段分解为子阶段.我想控制从一个子阶段到另一个子阶段的执行流程,有点像与ant依赖关系.

例如,我想使用NSIS插件,以便在我的项目被打包到war文件之后,将我的项目打包到包阶段的安装程序中.我想在包装阶段做所有这些.

那可能吗?

谢谢

Pas*_*ent 13

绑定到同一阶段的插件应按照 POM中列出的顺序执行.在某些情况下(例如,如果您将相同的插件绑定到阶段两次,如antrun插件),这可能不会发生,但这是一个错误(请参阅MNG-2258和相关问题MNG-3719).

  • 这不会发生(至少在maven 3.0.4中).我有两个插件,执行绑定到generate-sources,一个列在大约6个插件的列表中,另一个列在最后.但是,最后列出的那个(取决于首先列出的那个)总是首先执行. (9认同)

rpe*_*rez 6

我有同样的问题.看看如何在Maven2构建中执行有序任务.由于某种原因,绑定到阶段的不同目标存储在哈希映射或其他无序结构中,这使得执行顺序是随机的.我的解决方案是将任务分散到不同的阶段,但我不认为在你的情况下它有很多意义(nsis包装不是预集成测试).您可以执行以下操作之一:

1)试试你的运气,看看Maven是否为你选择了合适的订单(你可能已经尝试过了)

2)使用独立插件 - 在生命周期之外运行目标.类似于:mvn package org.codehaus.mojo:nsis-maven-plugin:1.0:compile.

3)将它们分成模块:让父pom包含两个子模块,一个 - 你的war项目,另一个用于nsis项目.

4)通过更改类型使用自定义生命周期,在您的情况下,您可以使用"exe".这是通过使用自定义插件扩展(使用扩展指南)完成的

5)使用jetspeed-mvn-maven-plugin.我从未使用它,但它似乎与您的需求相关.

希望这会给你新的想法.

罗南