maven打包 package install deploy區別

換了馬甲的小強發表於2020-11-05

一、構建專案的幾個環節

  • 清理(clean):刪除以前的編譯結果,為重新編譯做好準備
  • 編譯(compile):將Java 源程式編譯為位元組碼檔案
  • 測試(test):針對專案中的關鍵點進行測試,確保專案在迭代開發過程中關鍵點的正確性
  • 打包(package):將一個包含諸多檔案的工程封裝為一個壓縮檔案用於安裝或部署。Java 工程對應 jar 包,Web工程對應 war 包。
  • 安裝(install):在 Maven 環境下特指將打包的結果——jar 包或 war 包安裝到本地倉庫中。
  • 部署(deploy):將打包的結果部署到遠端倉庫或將 war 包部署到伺服器上執行。

二、打包區別

  • mvn package:打包到本專案,一般在專案target目錄下。
  • mvn install:打包到本地倉庫,如果沒設定Maven本地倉庫,一般在使用者/.m2目錄下。
  • mvn deploy:打包上傳到遠端倉庫,如:私服nexus等,需要配置pom檔案。

三、打包過程

  • mvn clean package
    依次執行:clean、resources、compile、testResources、testCompile、test、jar(打包)。

  • mvn clean install
    依次執行:clean、resources、compile、testResources、testCompile、test、jar(打包)、install。

  • mvn clean deploy
    依次執行:clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy。

由上面分析主要區別如下:

  • package命令:完成專案編譯、單元測試、打包功能,但打包檔案未部署到本地Maven倉庫和遠端Maven倉庫。

  • install命令:完成專案編譯、單元測試、打包功能,同時把打包檔案部署到本地Maven倉庫,但未部署到遠端Maven倉庫。

  • deploy命令:完成專案編譯、單元測試、打包功能,同時把打包檔案部署到本地Maven倉庫和遠端Maven倉庫。

轉載自:Maven 打包 package install deploy 區別
參考連結:面試官問我maven package和install的區別

相關文章