環境:
JAVA
IDEA
Maven 多層級架構
Jenkins
描述:
由于架構是 Maven 多層級架構,采用 Jenkins 打包發布的方式對服務部署,與傳統的單層架構不同。傳統的單層架構直接在 pom.xml 文件層通過 mvn 命令就可以實現對服務打包部署。在多層架構中如果在外層打包每次都要對所有服務打包,這樣的方式雖然簡單但打包和部署非常耗時;如果在用戶接口層或web層打包,pom.xml 中引入的本地模塊則不能打包到用戶接口層或web層中,從而導致打包失敗或啟動時缺包等問題。為了節省打包時間,又要提升打包成功的機率,需要在父級 pom.xml 文件層對需要打包的模塊進行打包,具體打包方式參考一下內容。
多模塊工程的打包命令參考:
-am --also-make 構建所列模塊的所有依賴模塊;
-amd -also-make-dependents 構建依賴于所列模塊的模塊;
-pl --projects <arg> 構建制定的模塊,模塊間用逗號分隔;
-rf -resume-from <arg> 從指定的模塊恢復反應堆。
指定 settings.xml 打包
mvn clean package --settings C:UsersAdmini.m2settings.xml
如果需要根據指定的 settings.xml 文件打包模塊依賴在 --settings 后面跟上 maven settings.xml 文件地址就可以。
指定模塊打包
mvn clean package -pl demo-web -am --settings C:UsersAdmini.m2settings.xml
打包指定模塊,如果是多模塊用逗號分割。
多層級模塊打包
mvn clean package -pl business-centerdemo-businessdemo-web -am --settings C:UsersAdmini.m2settings.xml
多層級模塊打包需要在最頂層的 pom.xml 文件中執行 mvn package <需要打包的模塊路徑> 命令,就可以解決不能打包父級或引用自定義的 jar 。
多層模塊與單層模塊打包區別:
多層模塊可能會涉及多層依賴關系,如果打包可能會找不到父級引用;單層模塊則不會出現此問題。
多層級多模塊打包自動構建依賴關系
mvn clean package -pl business-centerdemo-businessdemo-web -am --also-make --settings C:UsersAdmini.m2settings.xml
指定模塊打包并自動構建依賴關系的參數是 -am --also-make 參數,此參數是構建所列模塊的所有依賴模塊。
本文為CSDN博主「曠野歷程」的原創文章