Maven概述(一)

Maven是什麼?

Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.
(Apache Maven是一個軟件項目管理和理解工具。基於項目對象模型思想,Maven能夠管理一個項目的構建、報告和信息中心文檔)

Maven 是一個項目管理和整合工具。做爲Apache組織中的一個頗爲成功的開源項目,Maven主要服務於基於Java平臺的項目構建、依賴管理和項目信息管理。不管是小型的開源類庫項目,仍是大型的企業級應用;不管是傳統的瀑布式開發,仍是流行的敏捷模式,Maven都能大顯身手。java

Maven爲開發者提供了一套完整的構建生命週期框架。開發團隊幾乎不用花多少時間就可以自動完成工程的基礎構建配置,由於Maven使用了一個標準的目錄結構和一個默認的構建生命週期。apache

Maven可以幫助開發者完成如下工做:框架

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

總的來講,Maven簡化了工程的構建過程,並對其標準化。它無縫銜接了編譯、發佈、文檔生成、團隊合做和其餘任務。Maven提升了重用性,負責了大部分構建相關任務。maven

Maven的目標

Maven的主要目的是爲開發者提供工具

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

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

約定優於配置

Maven使用約定而不是配置,意味着開發者不須要再本身建立構建過程。
開發者不須要再關心每個配置細節。Maven爲工程提供了合理的默認行爲。當建立Maven工程時,Maven會建立默認的工程結構。開發者只須要合理的放置文件,而在pom.xml中再也不須要定義任何配置。插件

下表展現了工程源碼文件、資源文件的默認配置,和其餘一些配置。假定${basedir}表示工程目錄:code

配置項 默認值
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插件完成的。orm

開發人員不須要了解每一個插件是如何工做的,就可以構建任何給定的Maven工程。詳細內容參考Maven插件部分。xml

參考資料

  1. http://maven.apache.org/
  2. 《Maven實戰》 徐曉斌 著;
  3. 《Maven教程》 極客學院;

歡迎訪問我的博客:http://www.ycyoes.com

相關文章
相關標籤/搜索