我想将maven生命周期中的某些阶段分解为子阶段。我想控制从一个子阶段到另一个阶段的执行流程,有点像蚂蚁依赖。如何在单个阶段内执行多个Maven插件并设置各自的执行顺序?
例如,我想使用NSIS插件将我的项目打包到包装阶段的安装程序中,之后我的项目被打包成一个war文件。我想在包装阶段做所有的事情。
这可能吗?
由于
我想将maven生命周期中的某些阶段分解为子阶段。我想控制从一个子阶段到另一个阶段的执行流程,有点像蚂蚁依赖。如何在单个阶段内执行多个Maven插件并设置各自的执行顺序?
例如,我想使用NSIS插件将我的项目打包到包装阶段的安装程序中,之后我的项目被打包成一个war文件。我想在包装阶段做所有的事情。
这可能吗?
由于
我有同样的问题。看看How to perform ordered tasks in Maven2 build。 由于某种原因,绑定到阶段的不同目标被存储在哈希映射或其他无序结构中,这使得执行顺序是随机的。 我的解决方案是将任务分散到不同的阶段,但我不认为您的案例中有太多的意义(nsis包装不是预集成测试)。 您可以执行下列操作之一:
1)试试你的运气,看看Maven的chosses您正确的顺序(你可能尝试过的话)
2)使用独立的插件 - 运行外的目标生命周期。例如: mvn包org.codehaus.mojo:nsis-maven-plugin:1.0:编译。
3)将它们分成模块:有一个包含两个子模块的父包,一个是你的战争项目,另一个是nsis项目。
4)通过改变类型来使用自定义生命周期,在你的情况下你可以使用“exe”。这是通过使用自定义插件扩展(guide to using extension)
5)使用jetspeed-mvn-maven-plugin。我从来没有用过它,但它似乎与您的需求有关。
希望这给你新的想法。
罗南
不Maven的执行势必它们在POM列出的顺序相同的生命周期阶段插件的目标?只是一个猜测,可能值得测试... – 2010-03-24 16:47:46
不知道...我会试一试 – Yaneeve 2010-03-24 17:12:38