maven概述及原理

1.Maven概述及原理

1.1.概述

Maven是一個項目管理工具,他包含了一個項目對象模型,一組標準集合,一個項目生命週期,一個依賴管理系統和用來運行定義生命週期階段中插件目標的邏輯。

Maven是基於約定優於配置的思想來管理代碼目錄的。Maven的核心插件使用了一組通用的約定,以用來編譯源代碼,打包可分發的構件,生成Web站點,以及許多其他過程。約定的好處是使事情簡單化。

默認約定

默認源碼:${basedir}/src/main/java

資源文件:${basedir}/src/main/resources

測試代碼:${basedir}/src/main/test

JAR文件存放在:${basedir}/target/classes


Maven有很多優點包括依賴管理和通過插件重用一般的構建邏輯,但是它成功的最核心的原因是他定義了構建軟件的一般接口。

  Maven的核心其實不做什麼實際的的事情,除了解析一些XMl文檔,管理生命週期與插件之外,他什麼都不懂。Maven被設計成將主要的職責委派給一組Maven插件,這些常見可以影響Maven生命週期,提供對目標的訪問。絕大多數Maven的動作發生於Maven插件的目標,如編譯源代碼,打包二進制代碼,發佈站點和其他構建任務。

 Maven維護了一個項目的模型。這個基於每一個項目定義的模型實現了一下特徵:

·依賴管理

由於項目是根據一個包含組織標識符,構建標識符和版本的唯一的座標定義的。項目間可以使用這些座標來聲明依賴。

·遠程倉庫

可以通過定義在項目對象模型(POM)中的座標來創建Maven構建的倉庫。

·全局性構建邏輯重用

Maven插件被編寫成和項目模型對象(POM)一起工作,他們沒有被設計成操作某一個已知位置的特定文件(此點可與Ant對比)。一切都被抽象到模型中,插件配置和自定義行爲都在模型中進行。

·工具可移植性/集成

Maven標準化了項目模型對象(POM)模式,可使用IDE很容易生成有模型生成項目文件。

·便於搜索和過濾構建

1.2.原理

Maven的基本原理很簡單,採用遠程倉庫和本地倉庫以及一個類似build.xml的pom.xml,將pom.xml中定義的jar文件從遠程倉庫下載到本地倉庫,各個應用使用同一個本地倉庫的jar,同一個版本的jar只需下載一次,而且避免每個應用都去拷貝jar。如圖1。同時它採用了現在流行的插件體系架構,只保留最小的核心,其餘功能都通過插件的形式提供,所以maven下載很小,在執行maven任務時,纔會自動下載需要的插件。

圖1

Maven有一個官方的倉庫,是一個微內核,通過網絡將需要的文件下載到本地,通過官方倉庫將相應的類庫進行統一管理。另外由於插件的易開發性,現在有了非常多的可供選擇的插件,如與eclipse結合的插件,與Test相關的插件。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章