2012-10-01 43 views
2

我正在使用Maven多模塊項目。當我運行Maven和其中的一個模塊失敗,我得到的錯誤消息,然後將下面的行Maven是否記得它的狀態,以便我可以輕鬆地重新運行最後的命令?

After correcting the problems, you can resume the build with the command 
    mvn <goals> -rf :my.module.name 

Maven的不持有任何狀態?是否可以運行

mvn <goal> `start from where we left off` 

我問的原因是我的一些模塊名稱很長。我可以從cmd提示符下複製,但我只想要一個更快/更短的命令。通常節省幾秒鐘可能看起來不多,但在我使用maven的過程中,它可以爲我節省很多。

的問題是

  • 做行家保持狀態?
  • 如果可以,我可以快速從我離開的地方重新運行?

感謝

+0

我不知道這樣的選項。也許我的構建不會經常失敗,從命令行復制/粘貼就足夠了? =) –

+0

在我看來,來自Maven的消息已經告訴你如何做到這一點。如果您的問題是模塊名稱過長,那麼編寫一個腳本或別名(或者使用帶命令歷史記錄搜索的shell)以使其更容易。 –

回答

1

您可以使用Maven Shell在預加載的shell環境中執行maven目標/階段,從而顯着縮短構建時間。

+0

你知道我可以在哪裏下載Maven Shell嗎?我找到的所有鏈接均已死亡... :( – RNJ

+0

)您可以從Maven回購站點http://repo2.maven.org/maven2/org/sonatype/maven/shell/dist/mvnsh-assembly/1.0.1下載它/mvnsh-assembly-1.0.1-bin.zip –

+0

謝謝@EugeneKyleshov – RNJ

1

沒有,但你可以去到各個模塊,並建立他們 - 這在本質上是什麼行家呢,你只需要通過他們去正確的順序,否則你可能會得到令人困惑的結果(即舊的從屬模塊構建等)。 reactor構建摘要顯示maven將運行的模塊構建順序,並在構建開始時顯示。

最後,儘管您總是需要從父模塊進行完整構建,以便構建最終的構件。無論如何,從頂層跑起來往往是最簡單的。

0

不 - 至少在我的經驗中,Maven並沒有保持其狀態。如果您正在運行mvn package,這一點尤其重要。儘管在多模塊項目上運行mvn package可以正常工作(所有模塊都可以使用先前模塊生成的工件),但如果構建被中斷,則從構建中途恢復將會在引用時導致工件未找到錯誤到之前成功構建的模塊。

解決方法有兩種。重建所有東西,或使用mvn install要求maven安裝到本地回購站(如果您還沒有準備好部署)。在這種情況下,恢復您的構建不會失敗,因爲它會在您的本地回購中找到以前構建的模塊。

就像個人寵物一樣,您需要知道使用-rf標誌時的模塊工件名稱。 Maven會向您顯示顯示名稱,該名稱可能是也可能不是工件名稱。 -rf需要工件名稱。

相關問題