Maven 初識
一、Maven簡介
Maven在美國口語中是 專家、內行
的意思,是 Apache
下的一個純 Java 開發的開源專案。基於專案物件模型 Project Object Model
(縮寫:POM)概念,Maven利用一箇中央資訊片斷能管理一個專案的構建、報告和文件等步驟。
Maven是一個專案管理工具,它包含了一個專案物件模型 (POM:Project Object Model),一組標準集合,一個專案生命週期(Project Lifecycle),一個依賴管理系統(Dependency Management System),和用來執行定義在生命週期階段(phase)中外掛(plugin)目標(goal)的邏輯。
由於Maven是用Java開發的,因此Maven被更多的用於Java專案中,但也可以使用其它工具來構建專案。
二、Maven的功能
Maven 能夠幫助開發者完成以下工作:
- 構建
- 測試
- 文件生成
- 報告
- 依賴
- SCMs
- 釋出
- 分發
- 郵件列表
三、約定配置
Maven 提倡使用一個共同的標準目錄結構,Maven 使用約定優於配置的原則,大家儘可能的遵守這樣的目錄結構。如下所示:

maven目錄結構
注:如果不是webApp專案將不會存在webapp目錄,其餘約定將在後文介紹。
四、Maven 特點
- 專案設定遵循統一的規則。
- 任意工程中共享。
- 依賴管理包括自動更新。
- 一個龐大且不斷增長的庫。
- 可擴充套件,能夠輕鬆編寫 Java 或指令碼語言的外掛。
- 只需很少或不需要額外配置即可即時訪問新功能。
- 基於模型的構建 − Maven能夠將任意數量的專案構建到預定義的輸出型別中,如 JAR,WAR 或基於專案元資料的分發,而不需要在大多數情況下執行任何指令碼。
- 專案資訊的一致性站點 − 使用與構建過程相同的元資料,Maven 能夠生成一個網站或PDF,包括您要新增的任何文件,並新增到關於專案開發狀態的標準報告中。
- 釋出管理和釋出釋出 − Maven 將不需要額外的配置,就可以與原始碼管理系統(如 Subversion 或 Git)整合,並可以基於某個標籤管理專案的釋出。它也可以將其釋出到分發位置供其他專案使用。Maven能夠釋出單獨的輸出,如 JAR,包含其他依賴和文件的歸檔,或者作為原始碼釋出。
- 向後相容性 − 您可以很輕鬆的從舊版本 Maven 的多個模組移植到 Maven 3 中。
- 子專案使用父專案依賴時,正常情況子專案應該繼承父專案依賴,無需使用版本號,
- 並行構建 − 編譯的速度能普遍提高20 - 50 %。
- 更好的錯誤報告 − Maven 改進了錯誤報告,它為您提供了 Maven wiki 頁面的連結,您可以點選連結檢視錯誤的完整描述。