1. 程式人生 > >Maven學習 04 - 構建生命週期

Maven學習 04 - 構建生命週期

文章目錄

構建生命週期是指為一個工程進行專案構建和釋出的過程,它是 Maven 中的一個核心概念。

1、標準生命週期

Maven中內建了三個標準的構建生命週期:

  • default(或build):處理工程的部署
  • clean:處理工程的清理
  • site:負責建立工程的站點文件。

這三個構建生命週期都是由一系列不同的構建階段組成,每一個構建階段代表了生命週期的一個階段。

2、default 生命週期的階段

一個典型的 Maven default(build)生命週期主要由以下幾個階段的序列組成(此處並完全列出):
在這裡插入圖片描述

階段 描述
驗證 validate 驗證專案是否正確且所有必須資訊是可用的
編譯 compile 原始碼編譯在此階段完成
測試 Test 使用適當的單元測試框架(例如JUnit)執行測試。
包裝 package 建立JAR/WAR包如在 pom.xml 中定義提及的包
檢查 verify 對整合測試的結果進行檢查,以保證質量達標
安裝 install 安裝打包的專案到本地倉庫,以供其他專案使用
部署 deploy 拷貝最終的工程包到遠端倉庫中,以共享給其他開發人員和工程

使用預設的生命週期時,Maven將首先驗證專案,然後將編譯原始碼,執行單元測試,再打包二進位制檔案(例如:jar),然後再對包檔案進行整合測試(如果需要的話),再校驗包檔案,並將已經校驗的包檔案安裝到本地倉庫,然後在指定的環境中部署包。

3、生命週期階段的執行順序

  • 各生命週期的階段會被順序地執行(包括那些這裡沒有展示的其他生命週期階段)。

  • 而且在呼叫一個生命週期階段時,maven 不僅執行指定的構建階段,也會執行指定構建階段之前的每一個階段

比如,在預設生命週期中,只需要呼叫最後一個deploy生命階段,即可執行前面所有階段:

mvn deploy  // 會先執行前面的所有階段

mvn install  // 會先執行前面的 validate ... verify 等階段
  • 同樣的命令可以用在多模組的情況下(即包含一個或多個子專案的工程):

      mvn clean install
      // 會遍歷所有的子專案,並且執行clean命令,然後執行install命令(包含所有之前步驟的命令)	
    
  • 構建命令中也可以加入外掛目標

    • 一個外掛目標代表一個特定的任務(比構建階段更為精細)。這些目標的執行順序取決於呼叫目標和構建階段的順序。例如下面的命令:

        mvn clean dependency:copy-dependencies package
        // 其中clean 和 pakage 是構建階段,dependency:copy-dependencies 是目標。
        // 執行順序是` clean 階段 -> dependency:copy-dependencies 目標 -> package 階段 `
      

4、Clean 生命週期

clean 階段用於清除上一次編譯之後在target包下生成的位元組碼檔案。

階段 描述
pre-clean 執行一些清理前需要完成的工作
clean 清理上一次構建生成的檔案
post-clean 執行一些清理後需要完成的工作

5、Site生命週期

階段 描述
pre-site 執行一些在生成站點之前需要完成的工作
site 生成專案的站點文件
post-site 執行一些在生成站點之後需要完成的工作
site-deploy 將生成的站點檔案釋出到遠端伺服器上