我想將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