Maven--反应堆(Reactor)
在一個多模塊的 Maven 項(xiàng)目中,反應(yīng)堆是指所有模塊組成的一個構(gòu)建結(jié)構(gòu)。對于單模塊的項(xiàng)目,反應(yīng)堆就是該模塊本身。但對于多模塊項(xiàng)目來說,反應(yīng)堆就包含了各模塊之間繼承與依賴的關(guān)系,從而能夠自動計(jì)算出合理的模塊構(gòu)建順序。
模塊間的依賴關(guān)系會將反應(yīng)堆構(gòu)成一個有向非循環(huán)圖(Directed Acyclic Graph, DAG),各個模塊是該圖的節(jié)點(diǎn),依賴關(guān)系構(gòu)成了有向邊。這個圖不允許出現(xiàn)循環(huán),因此,當(dāng)出現(xiàn)模塊 A 依賴于 B,而 B 又依賴于 A 的情況時,Maven 就會報(bào)錯。
?
?
一般來說,用戶會選擇構(gòu)建整個項(xiàng)目或者選擇構(gòu)建單個模塊,但有些時候,用戶會想要僅僅構(gòu)建完整反應(yīng)堆中的某些個模塊。換句話說,用戶需要實(shí)時地裁剪反應(yīng)堆。
Maven 提供了很多的命令行選項(xiàng)支持裁剪反應(yīng)堆,輸入??mvn -h?可以看到這些選項(xiàng):
可以使用??-pl?選項(xiàng)指定構(gòu)建某幾個模塊
1 mvn clean install -pl moduleA,moduleB,...?
使用?-am?選項(xiàng)可以同時構(gòu)建所列模塊的依賴模塊
mvn clean install -pl moduleA -am如果 moduleA 依賴了 moduleB,這里就會構(gòu)建 moduleB 和 moduleA
?
使用?-amd?選項(xiàng)可以同時構(gòu)建依賴于所列模塊的模塊
mvn clean install -pl moduleA -amd如果 moduleB 和 moduleC 依賴于 moduleA,這里就會構(gòu)建 moduleA,moduleB 和 moduleC
?
使用??-rf?選項(xiàng)可以在完整的反應(yīng)堆構(gòu)建順序基礎(chǔ)上指定從哪個模塊開始構(gòu)建
mvn clean install -rf moduleA如果該完整的反應(yīng)堆構(gòu)建順序中,moduleA 位于第三,那么就從moduleA 開始構(gòu)建一直到最后的模塊,moduleA 之前的模塊不構(gòu)建。
?
在?-pf??-am?或者??-pl??-amd?的基礎(chǔ)上,還能應(yīng)用 -rf 參數(shù),以對裁剪后的反應(yīng)堆再次裁剪。
mvn clean install -pl moduleA -amd -rf moduleB如果 moduleB 和 moduleC 依賴于 moduleA,這里就會構(gòu)建 moduleB 和 moduleC
轉(zhuǎn)載于:https://www.cnblogs.com/microcat/p/7243074.html
總結(jié)
以上是生活随笔為你收集整理的Maven--反应堆(Reactor)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 房屋租赁管理系统(Java毕业设计-Sp
- 下一篇: 设计模式之模版方法模式的钩子方法