Maven編譯指定(跳過)Module


在編譯項目時,經常會遇到只編譯指定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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM