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可以管理一個項目的構(gòu)建、報告和信息中心文檔)

Maven 是一個項目管理和整合工具。作為Apache組織中的一個頗為成功的開源項目,Maven主要服務(wù)于基于Java平臺的項目構(gòu)建、依賴管理和項目信息管理。無論是小型的開源類庫項目,還是大型的企業(yè)級應(yīng)用;無論是傳統(tǒng)的瀑布式開發(fā),還是流行的敏捷模式,Maven都能大顯身手。

Maven為開發(fā)者提供了一套完整的構(gòu)建生命周期框架。開發(fā)團隊幾乎不用花多少時間就能夠自動完成工程的基礎(chǔ)構(gòu)建配置,因為Maven使用了一個標(biāo)準(zhǔn)的目錄結(jié)構(gòu)和一個默認(rèn)的構(gòu)建生命周期。

Maven能夠幫助開發(fā)者完成以下工作:

  • 構(gòu)建
  • 文檔生成
  • 報告
  • 依賴
  • SCMs
  • 發(fā)布
  • 分發(fā)
  • 郵件列表

總的來說,Maven簡化了工程的構(gòu)建過程,并對其標(biāo)準(zhǔn)化。它無縫銜接了編譯、發(fā)布、文檔生成、團隊合作和其他任務(wù)。Maven提高了重用性,負(fù)責(zé)了大部分構(gòu)建相關(guān)任務(wù)。

Maven的目標(biāo)

Maven的主要目的是為開發(fā)者提供

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

Maven工程結(jié)構(gòu)和內(nèi)容被定義在一個xml文件中-pom.xml,是Project Object Model(POM)的簡稱,此文件是整個Maven系統(tǒng)的基礎(chǔ)組件。

約定優(yōu)于配置

Maven使用約定而不是配置,意味著開發(fā)者不需要再自己創(chuàng)建構(gòu)建過程。
開發(fā)者不需要再關(guān)心每一個配置細(xì)節(jié)。Maven為工程提供了合理的默認(rèn)行為。當(dāng)創(chuàng)建Maven工程時,Maven會創(chuàng)建默認(rèn)的工程結(jié)構(gòu)。開發(fā)者只需要合理的放置文件,而在pom.xml中不再需要定義任何配置。

下表展示了工程源碼文件、資源文件的默認(rèn)配置,和其他一些配置。假定${basedir}表示工程目錄:

配置項 默認(rèn)值
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

為了構(gòu)建工程,Maven為開發(fā)者提供了選項來配置生命周期目標(biāo)和工程依賴(依賴于Maven的插件擴展功能和默認(rèn)的約定)。大部分的工程管理和構(gòu)建相關(guān)的任務(wù)是由Maven插件完成的。

開發(fā)人員不需要了解每個插件是如何工作的,就能夠構(gòu)建任何給定的Maven工程。詳細(xì)內(nèi)容參考Maven插件部分。

參考資料

  1. http://maven.apache.org/
  2. 《Maven實戰(zhàn)》 徐曉斌 著;
  3. 《Maven教程》 極客學(xué)院;

歡迎訪問個人博客:http://www.ycyoes.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,933評論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,958評論 6 342
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,333評論 25 708
  • 寒風(fēng)瑟瑟 冬季將至 隨著溫度降低 心中的熱情也漸漸消散 我以為,我可以 很小心的保護 我對你的感情 或許是我太過小...
    空酌閱讀 369評論 0 1
  • 這是一場說走就走的親子旅行,由于臨時休假的原因,2017年8月13日下午確定出行計劃,次日清晨整裝出發(fā)。...
    小蟲子呼呼閱讀 778評論 1 0