1、Maven簡介
Maven在美國口語中是專家、內行
的意思,是Apache
下的一個純 Java 開發的開源項目。基於項目對象模型Project Object Model
(縮寫:POM)概念,Maven利用一箇中央信息片段能管理一個項目的構建、報告和文檔等步驟。web
Maven是一個項目管理工具,它包含了一個項目對象模型 (POM:Project Object Model),一組標準集合,一個項目生命週期(Project Lifecycle),一個依賴管理系統(Dependency Management System),和用來運行定義在生命週期階段(phase)中插件(plugin)目標(goal)的邏輯。app
因爲Maven是用Java開發的,所以Maven被更多的用於Java項目中,但也可使用其它工具來構建項目。webapp
2、Maven的功能
Maven 可以幫助開發者完成如下工做:工具
- 構建
- 測試
- 文檔生成
- 報告
- 依賴
- SCMs
- 發佈
- 分發
- 郵件列表
3、約定配置
Maven 提倡使用一個共同的標準目錄結構,Maven 使用約定優於配置的原則,你們儘量的遵照這樣的目錄結構。以下所示: 測試
注:若是不是webApp項目將不會存在webapp目錄,其他約定將在後文介紹。
4、Maven 特色
- 項目設置遵循統一的規則。
- 任意工程中共享。
- 依賴管理包括自動更新。
- 一個龐大且不斷增加的庫。
- 可擴展,可以輕鬆編寫 Java 或腳本語言的插件。
- 只需不多或不須要額外配置便可即時訪問新功能。
- 基於模型的構建 − Maven可以將任意數量的項目構建到預約義的輸出類型中,如 JAR,WAR 或基於項目元數據的分發,而不須要在大多數狀況下執行任何腳本。
- 項目信息的一致性站點 − 使用與構建過程相同的元數據,Maven 可以生成一個網站或PDF,包括您要添加的任何文檔,並添加到關於項目開發狀態的標準報告中。
- 發佈管理和發佈發佈 − Maven 將不須要額外的配置,就能夠與源代碼管理系統(如 Subversion 或 Git)集成,並能夠基於某個標籤管理項目的發佈。它也能夠將其發佈到分發位置供其餘項目使用。Maven可以發佈單獨的輸出,如 JAR,包含其餘依賴和文檔的歸檔,或者做爲源代碼發佈。
- 向後兼容性 − 您能夠很輕鬆的從舊版本 Maven 的多個模塊移植到 Maven 3 中。
- 子項目使用父項目依賴時,正常狀況子項目應該繼承父項目依賴,無需使用版本號,
- 並行構建 − 編譯的速度能廣泛提升20 - 50 %。
- 更好的錯誤報告 − Maven 改進了錯誤報告,它爲您提供了 Maven wiki 頁面的連接,您能夠點擊連接查看錯誤的完整描述。