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是一個(gè)軟件項(xiàng)目管理和理解工具。基于項(xiàng)目對(duì)象模型思想,Maven可以管理一個(gè)項(xiàng)目的構(gòu)建、報(bào)告和信息中心文檔)

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

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

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

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

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

Maven的目標(biāo)

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

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

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

約定優(yōu)于配置

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

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

配置項(xiàng) 默認(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為開(kāi)發(fā)者提供了選項(xiàng)來(lái)配置生命周期目標(biāo)和工程依賴(依賴于Maven的插件擴(kuò)展功能和默認(rèn)的約定)。大部分的工程管理和構(gòu)建相關(guān)的任務(wù)是由Maven插件完成的。

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

參考資料

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

歡迎訪問(wèn)個(gè)人博客:http://www.ycyoes.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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

友情鏈接更多精彩內(nèi)容