1. 程式人生 > >maven(一)-介紹

maven(一)-介紹

一、Maven 是什麼?

Maven 是一個專案管理和整合工具。Maven 為開發者提供了一套完整的構建生命週期框架。開發團隊幾乎不用花多少時間就能夠自動完成工程的基礎構建配置,因為 Maven 使用了一個標準的目錄結構和一個預設的構建生命週期。

在有多個開發團隊環境的情況下,Maven 能夠在很短的時間內使得每項工作都按照標準進行。因為大部分的工程配置操作都非常簡單並且可複用,在建立報告、檢查、構建和測試自動配置時,Maven 可以讓開發者的工作變得更簡單。

Maven 能夠幫助開發者完成以下工作:

  • 構建
  • 文件生成
  • 報告
  • 依賴
  • SCMs
  • 釋出
  • 分發
  • 郵件列表

總的來說,Maven 簡化了工程的構建過程,並對其標準化。它無縫銜接了編譯、釋出、文件生成、團隊合作和其他任務。Maven 提高了重用性,負責了大部分構建相關的任務。

二、Maven 的歷史

Maven 最初是在 Jakarta Turbine 專案中為了簡化構建過程而設計的。專案中有幾個子工程,每個工程包含稍有不同的 ANT 檔案。JAR 檔案使用 CVS 管理。

Apache 小組隨後開發了 Maven,能夠同時構建多個工程、釋出工程資訊、部署工程、在幾個工程中共享 JAR 檔案,並且協助團隊合作。

三、Maven 的目標

Maven 的主要目的是為開發者提供

  • 一個可複用、可維護、更易理解的工程綜合模型
  • 與這個模型互動的外掛或者工具

Maven 工程結構和內容被定義在一個 xml 檔案中 - pom.xml,是 Project Object Model (POM) 的簡稱,此檔案是整個 Maven 系統的基礎元件。

四、約定優於配置

Maven 使用約定而不是配置,意味著開發者不需要再自己建立構建過程。

開發者不需要再關心每一個配置細節。Maven 為工程提供了合理的預設行為。當建立 Maven 工程時,Maven 會建立預設的工程結構。開發者只需要合理的放置檔案,而在 pom.xml 中不再需要定義任何配置。

舉例說明,下面的表格展示了工程原始碼檔案、資原始檔的預設配置,和其他一些配置。假定 ${basedir} 表示工程目錄:

配置項 預設值
source code ${basedir}/src/main/java
resources ${basedir}/src/main/resources
Tests ${basedir}/src/test
Complied byte code ${basedir}/target
distributable JAR ${basedir}/target/classes

為了構建工程,Maven 為開發者提供了選項來配置生命週期目標和工程依賴(依賴於 Maven 的外掛擴充套件功能和預設的約定)。大部分的工程管理和構建相關的任務是由 Maven 外掛完成的。