Maven - 工作原理



章節


Maven以POM文件(項目對象模型)為中心,POM文件是xml格式,是自動構建的配置文件,位於項目的根目錄下。

如果熟悉make 與 Makefile,可以看出,maven相當於make,pom.xml相當於makefile

下面是Maven讀取POM文件執行構建過程的示意圖

image

下面簡單說明一下上圖中的一些概念,后續會有更詳細的的介紹。

POM文件

執行Maven命令時,Maven根據POM文件中的配置來執行命令。

依賴項和存儲庫

pom文件包含了依賴項的配置,依賴項是項目使用的外部JAR文件(Java庫)。如果本地庫中沒有找到依賴項,Maven將從中央庫下載依賴項,並存放在本地庫中。本地存儲庫只是本機上的一個目錄,這個目錄位置可配置。另外除了中央庫,還可以配置其他遠程庫,例如公司內部可以架設一個遠程庫供所有開發人員使用。后續會有詳細介紹。

構建生命周期、階段和目標

項目的構建通常包含數個相互獨立的任務,可以獨立執行,如生成文檔,構建jar包等。單個任務的執行過程被稱為一個構建生命周期,構建生命周期由一系列的構建階段組成,每個階段包含一系列的構建目標。

我們可以執行構建階段或構建目標。階段按順序執行,執行一個階段則會先執行該階段之前的所有階段。當執行構建階段時,將會按順序執行其中包含的所有構建目標。構建目標可以被分配到一個或多個構建階段。我們還可以直接執行構建目標。

插件

插件是構建目標的集合,也稱為MOJO (Maven Old Java Object)。可以把插件理解為一個類,而構建目標是類中的方法。構建階段包含一系列的構建目標,可以理解為按順序調用各個插件中的構建目標(方法),然后一系列的構建階段組成一個構建生命周期。

Maven實際上是一個插件執行框架。如有必要,可以用java開發自定義插件。

構建profile

如果需要構建項目的不同版本,可以使用構建profile。例如,項目中需要構建開發版本、測試版本以及正式版本,這些版本可以通過在pom文件中添加不同構建profile構建。執行maven時指定不同的構建profile就可以。


免責聲明!

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



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