我想把Maven生命周期中的某些阶段分成子阶段。我希望控制从一个子阶段到另一个子阶段的执行流程,有点像使用ant依赖性。 例如,在打包阶段,我想使用NSIS插件将我的项目打包成安装程序,但是要在我的项目被打包成war文件后。我想在打包阶段完成所有操作。 这种做法可行吗?
绑定到相同阶段的插件应该按照它们在 POM 中列出的顺序执行。在某些情况下(例如,如果您将同一个插件绑定到两个阶段,比如 antrun 插件),可能会出现无法执行的情况,但这是一个 bug(参见 MNG-2258 和相关问题 MNG-3719)。
我遇到了同样的问题。看看如何在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。我从未使用过它,但它似乎与您的需求相关。 希望这能给您带来新的想法。 Ronen