17

我想将 Maven 生命周期中的某些阶段分解为子阶段。我想控制从一个子阶段到另一个子阶段的执行流程,有点像蚂蚁依赖。

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

那可能吗?

4

2 回答 2

13

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

于 2010-03-24T17:24:07.800 回答
6

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

1)试试你的运气,看看Maven是否为你选择了正确的顺序(你可能已经试过了)

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

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

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

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

希望这能给你新的想法。

罗南

于 2010-03-25T09:10:04.990 回答