在編譯項目時,經常會遇到只編譯指定Moudle 的情況,如果全部編譯,耗時會很長
編譯命令
編譯制定模塊的相關的命令
-am --also-make 同時構建所列模塊的依賴模塊; -amd -also-make-dependents 同時構建依賴於所列模塊的模塊; -pl --projects <arg> 構建制定的模塊,模塊間用逗號分隔; -rf -resume-from <arg> 從指定的模塊恢復反應堆。
編譯測試
例如項目模塊如下
<modules> <module>ModuleA</module> <module>ModuleB</module> <module>ModuleC</module> <module>ModuleD</module> <module>ModuleE</module> </modules>
首先查看一下依賴關系
mvn dependency:tree
上面的命令會列出所有的依賴關系和依賴的所有的包
自己打開各個module的pom看一下互相之間的依賴就行
假如只想編譯ModuleB及其依賴的模塊, 那么在編譯的時候
mvn clean install -pl ModuleB -am
假設Module依賴了A和C, 那么在編譯的時候就只會編譯A B C三個模塊~
如果ModuleD依賴了B, 然后在編譯的時候使用了-amd的話, 那么ModuleD也會被編譯, 這個意思就是編譯依賴了所列模塊的模塊
mvn clean install -pl ModuleB -am -amd
使用上面的命令會同時編譯 A B C D ~
-rf 選項用於選擇起始位置(發現結合-rf的時候, -am和-amd是需要后置的)
假設ModuleA和ModuleC都依賴ModuleB, 那么如果在ModuleB截斷, 整個流程不會變, 如果在ModuleA截斷, 那么只會從ModuleA開始執行后面的構建流程。
mvn install -pl ModuleB -am -amd -rf ModuleA
上面的命令是從ModuleA開始截斷的
總結
一般來說經常用到的命令, 你想編譯的Module: ModuleX
mvn clean install ModuleX -am