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