理解maven命令package、install、deploy的聯系與區別


我們在用maven構建java項目時,最常用的打包命令有mvn package、mvn install、deploy,這三個命令都可完成打jar包或war(當然也可以是其它形式的包)的功能,但這三個命令還是有區別的。下面通過分別執行這三個命令的輸出結果,來分析各自所執行的maven的生命周期。

mvn clean package

這里寫圖片描述這里寫圖片描述

mvn clean install

這里寫圖片描述這里寫圖片描述

mvn clean deploy(忽略最后的BUILD FAILURE)

這里寫圖片描述這里寫圖片描述

  通過三個命令的輸出我們可以看出三者的區別在於包函的maven生命的階段和執行目標(goal)不同。在我的上一篇文章https://blog.csdn.net/zhaojianting/article/details/80321488 中介紹了maven的生命周期和各種插件,不明白的請參考此博文。maven生命周期(lifecycle)由各個階段組成,每個階段由maven的插件plugin來執行完成。生命周期(lifecycle)主要包括clean、resources、complie、install、pacakge、testResources、testCompile、deploy等,其中帶test開頭的都是用業編譯測試代碼或運行單元測試用例的。

  仔細查看上面的輸出結果截圖,可以發現,

  • mvn clean package依次執行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7個階段。
  • mvn clean install依次執行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8個階段。
  • mvn clean deploy依次執行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9個階段。

       由上面的分析可知主要區別如下,

  • package命令完成了項目編譯、單元測試、打包功能,但沒有把打好的可執行jar包(war包或其它形式的包)布署到本地maven倉庫和遠程maven私服倉庫
  • install命令完成了項目編譯、單元測試、打包功能,同時把打好的可執行jar包(war包或其它形式的包)布署到本地maven倉庫,但沒有布署到遠程maven私服倉庫
  • deploy命令完成了項目編譯、單元測試、打包功能,同時把打好的可執行jar包(war包或其它形式的包)布署到本地maven倉庫和遠程maven私服倉庫 


免責聲明!

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



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