2016-06-10 55 views
0

假設我有兩個項目A和B的maven中的多模塊項目。取決於B.模塊編譯是否可以在依賴性測試結束之前發生?

如果我運行並行構建(mvn -T 2C ...),那麼模塊B將被編譯,經過測試,然後模塊A將被編譯和測試。喜歡的東西:

乙編譯 B測試 編譯 一個測試

提速的事情,我想之前啓動A的彙編(甚至測試)(以及實際中...)B的測試。

換句話說,maven中有沒有一個選項允許在執行並行構建時使用相位粒度而不是模塊角度?

+0

你能說出你的構建需要多長時間嗎?你需要多少模塊/測試才能提高構建速度?你有沒有檢查性能問題的真正原因是什麼?你正在使用哪個Maven版本? – khmarbaise

回答

0

對此的簡單回答:不存在沒有這樣的選項。

較長的答案:

這將沒有任何意義,事業運行測試編譯代碼後是這裏的基礎之一,以具有可靠的代碼。

如果您進一步思考:讓我們說可以做這樣的事情。

您運行模塊B的編譯,並且讓模塊A也運行它的編譯。所以問題出現在模塊B中測試失敗的地步?那是什麼意思?編譯模塊A的開始是無用的,因爲你已經計算了錯誤的代碼(失敗的測試)。

+0

我明白你的觀點,當然我想過。我的推理如下:如果B測試失敗,是的,模塊A的編譯是無用的,因此編譯應該停止。但是如果B測試通過,那麼我可以節省一些編譯時間(並且如果我貪婪的話最終會有一些測試時間)。換言之,圖中的依賴關係A→B可能更多「靈活」,只要沒有副作用(比如部署A,例如,如果B測試失敗,你真的不想這麼做) – Julien

+0

你當然可以在理論上考慮這樣的事情。但在實際操作中很難處理這些事情。 [takari smart builder](https://github.com/takari/takari-smart-builder)可能對你很有意思。除此之外,我懷疑要節省這麼多時間與努力實現這一運行相比...... – khmarbaise

相關問題