Maven項目,快速按需任意構建

反應堆

mvn命令對多模塊構件時,會根據模塊的依賴關係而得到模塊的構建順序,這個功能就是maven的反應堆(reactor)做的事情,反應堆會根據模塊之間的依賴關係、聚合關係、繼承關係等等,從而計算得出一個合理的模塊構建順序.

按需隨意構建

有這樣的一種場景:b2b-account-apib2b-account-serviceb2b-order-service依賴了,所以當b2b-account-api有修改的時候,我們希望他們3個都能夠被重新構建一次,而不是去對所有的模塊都進行重新構建,我們只希望被影響的模塊都能夠參與重新構建.

如果每次修改一個模塊,我們都去重新打包所有的模塊,這個構建過程耗時是非常久的,只能乾等着,我們需要的是按需構建,需要構建哪些模塊讓我們自己能夠隨意指定,這樣也可以加快構建的速度

mvn -h可以查看幫助

-pl,--projects <arg>

構件指定的模塊,arg表示多個模塊,之間用逗號分開,模塊有兩種寫法

-pl 模塊1相對路徑 [,模塊2相對路徑] [,模塊n相對路徑]
-pl [模塊1的groupId]:模塊1的artifactId [,[模塊2的groupId]:模塊2的artifactId] [,[模塊n的groupId]:模塊n的artifactId]
-rf,--resume-from <arg>

從指定的模塊恢復反應堆

mvn clean install -rf b2b-order/b2b-order-service

# 輸出內容
[INFO] Reactor Build Order:
[INFO]
[INFO] b2b-order-service                                                  [jar]
[INFO] b2b-order                                                          [pom]
[INFO] b2b                                                                [pom]
-am,--also-make

同時構建所列模塊的依賴模塊

-amd,--also-make-dependents

同時構件依賴於所列模塊的模塊

案例

# 只構建 account模塊,運行命令
mvn clean install -pl b2b-account
# 構建b2b-account-api和b2b-order-api
mvn clean install -pl b2b-account/b2b-account-api,b2b-account/b2b-account-service

# 還有2種寫
mvn clean install -pl :b2b-account-api,b2b-order/b2b-order-api
mvn clean install -pl :b2b-account-api,:b2b-order-service

我們只修改了b2b-account-api代碼,所以我希望對這個重新打包,並且對這個有依賴的也重新打包,所以需要打包下面3個模塊:

b2b-account-api
b2b-account-service
b2b-order-service

上面列表中的後面兩個是依賴於b2b-account-api的,可以在b2b/pom.xml中執行下面命令:

mvn clean install -pl b2b-account/b2b-account-api -amd

## 輸出內容
[INFO] Reactor Summary:
[INFO]
[INFO] b2b-account-api .................................... SUCCESS [  1.131 s]
[INFO] b2b-account-service ................................ SUCCESS [  0.115 s]
[INFO] b2b-order-service .................................. SUCCESS [  0.214 s]

從上面輸出中看一下反應堆列出的構建順序:b2b-account-api、b2b-account-service、b2b-order-service

參考

快速按需任意構建

發佈了19 篇原創文章 · 獲贊 2 · 訪問量 1418
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章