讀古今文學網 > Maven實戰 > 8.6.2 裁剪反應堆 >

8.6.2 裁剪反應堆

一般來說,用戶會選擇構建整個項目或者選擇構建單個模塊,但有些時候,用戶會想要僅僅構建完整反應堆中的某些個模塊。換句話說,用戶需要實時地裁剪反應堆。

Maven提供很多的命令行選項支持裁剪反應堆,輸入mvn-h可以看到這些選項:

·-am,--also-make同時構建所列模塊的依賴模塊

·-amd-also-make-dependents同時構建依賴於所列模塊的模塊

·-pl,--projects<arg>構建指定的模塊,模塊間用逗號分隔

·-rf-resume-from<arg>從指定的模塊回復反應堆

下面還是以賬戶服務為例(為合併聚合和繼承),解釋這幾個選項的作用。默認情況從account-aggregator執行mvn clean install會得到如下完整的反應堆:

可以使用-pl選項指定構建某幾個模塊,如運行如下命令:

得到的反應堆為:

使用-am選項可以同時構建所列模塊的依賴模塊。例如:

由於account-email依賴於account-parent,因此會得到如下反應堆:

使用-amd選項可以同時構建依賴於所列模塊的模塊。例如:

由於account-email和account-persist都依賴於account-parent,因此會得到如下反應堆:

使用-rf選項可以在完整的反應堆構建順序基礎上指定從哪個模塊開始構建。例如:

完整的反應堆構建順序中,account-email位於第三,它之後只有account-persist,因此會得到如下的裁剪反應堆:

最後,在-pl-am或者-pl-amd的基礎上,還能應用-rf參數,以對裁剪後的反應堆再次裁剪。例如:

該命令中的-pl和-amd參數會裁剪出一個account-parent、account-email和account-persist的反應堆,在此基礎上,-rf參數指定從account-email參數構建。因此會得到如下的反應堆:

在開發過程中,靈活應用上述4個參數,可以幫助我們跳過無須構建的模塊,從而加速構建。在項目龐大、模塊特別多的時候,這種效果就會異常明顯。