一般來說,用戶會選擇構建整個項目或者選擇構建單個模塊,但有些時候,用戶會想要僅僅構建完整反應堆中的某些個模塊。換句話說,用戶需要實時地裁剪反應堆。
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個參數,可以幫助我們跳過無須構建的模塊,從而加速構建。在項目龐大、模塊特別多的時候,這種效果就會異常明顯。