Docker版maven構(gòu)建工具的使用
本文講述Docker版maven構(gòu)建工具的使用,基于docker鏡像的便攜性,可以隨意切換maven工具的版本,來快速測試不同maven版本的特性
docker版本 20.10.12
maven鏡像版本 3.8.4-jdk-8
參考文檔:
https://hub.docker.com/_/maven
https://docs.docker.com/engine/reference/run/
入門使用方式
1.下載示例工程,以便構(gòu)建使用
我這里使用linux服務(wù)器直接將工程克隆到root目錄下
2.執(zhí)行構(gòu)建指令,來打包工程

下載鏡像

下載依賴包過程

構(gòu)建完成
執(zhí)行命令后,經(jīng)過漫長的等待,可以看到構(gòu)建成功了,進(jìn)入工程target目錄,可以看到構(gòu)建產(chǎn)物

制品包
命令解釋
-it 進(jìn)入容器交互終端
--rm 運(yùn)行完容器即刪除
-v 掛載數(shù)據(jù)卷,將我們之前下載的git倉庫目錄掛載到容器內(nèi),以便maven執(zhí)行構(gòu)建
-w 指定容器默認(rèn)的工作目錄,容器中的mvn構(gòu)建命令會在此目錄下執(zhí)行
--name 設(shè)置容器名稱 ?也可以不設(shè)置,方便用于區(qū)分容器
鏡像后面填入maven的構(gòu)建命令,就可以實(shí)現(xiàn)基于maven鏡像的打包了
進(jìn)階使用方式
通過如上的構(gòu)建過程,我們會發(fā)現(xiàn),構(gòu)建過程中需要重復(fù)去遠(yuǎn)程下載依賴包,這個(gè)過程消耗了大量的時(shí)間;我們可以將容器中的maven倉庫目錄掛載到宿主機(jī)中,這樣后續(xù)的構(gòu)建就能方便的重用本地已經(jīng)下載的依賴包了
通過-v參數(shù)來實(shí)現(xiàn)即可
再次運(yùn)行構(gòu)建命令測試

構(gòu)建速度提升
對比之前的構(gòu)建結(jié)果可以看出,重用本地倉庫后,免去重復(fù)下載依賴包的環(huán)節(jié),構(gòu)建速度明顯得以提升了
為了方便之后復(fù)用構(gòu)建命令,來構(gòu)建任意maven工程,可以將docker下的構(gòu)建命令封裝成shell腳本,編寫如下
chmod +x docker-maven-build.sh 給腳本添加執(zhí)行權(quán)限
./docker-maven-build.sh 執(zhí)行腳本,輸入maven工程路徑來構(gòu)建測試

執(zhí)行shell腳本

構(gòu)建完成