1、Maven是什么智政?
Apache Maven 是一個(gè)項(xiàng)目管理和整合工具认罩。為開發(fā)者提供了一套完整的構(gòu)建生命周期框架。開發(fā)團(tuán)隊(duì)幾乎不用花多少時(shí)間就能夠自動完成工程的基礎(chǔ)構(gòu)建配置续捂,因?yàn)?Maven 使用了一個(gè)標(biāo)準(zhǔn)的目錄結(jié)構(gòu)和一個(gè)默認(rèn)的構(gòu)建生命周期垦垂。
在有多個(gè)開發(fā)團(tuán)隊(duì)環(huán)境的情況下,Maven 能夠在很短的時(shí)間內(nèi)使得每項(xiàng)工作都按照標(biāo)準(zhǔn)進(jìn)行牙瓢。因?yàn)榇蟛糠值墓こ膛渲貌僮鞫挤浅:唵尾⑶铱蓮?fù)用劫拗,在創(chuàng)建報(bào)告、檢查矾克、構(gòu)建和測試自動配置時(shí)页慷,Maven 可以讓開發(fā)者的工作變得更簡單。
Maven能夠同時(shí)構(gòu)建多個(gè)工程胁附、發(fā)布工程信息酒繁、部署工程、在幾個(gè)工程中共享JAR文件控妻,并且協(xié)助團(tuán)隊(duì)合作(ant則是每個(gè)子工程都有一個(gè)ANT文件)州袒。
2、Maven功能弓候?
- 構(gòu)建
- 文檔生成
- 報(bào)告
- 依賴
- SCMs
- 發(fā)布
- 分發(fā)
- 郵件列表
Maven簡化了工程的構(gòu)建過程郎哭,并對齊標(biāo)準(zhǔn)化。他無縫銜接了編譯菇存、發(fā)布彰居、文檔生產(chǎn)、團(tuán)隊(duì)合作和其他任務(wù)撰筷,提高了重用性陈惰,負(fù)責(zé)了大部分構(gòu)建相關(guān)的任務(wù)。
3、Maven目標(biāo)抬闯?
Maven的主要目的就是為開發(fā)者提供:
- 一個(gè)可復(fù)用井辆、可維護(hù)、更易理解的工程綜合模型
- 與這個(gè)模型交互的插件或者工具
Maven工程結(jié)構(gòu)和內(nèi)容被定義在一個(gè)XML文件中pox.xml
溶握,此文件是整個(gè)Maven系統(tǒng)的基礎(chǔ)組件杯缺。
4、約定優(yōu)于配置睡榆?
Maven 使用約定而不是配置萍肆,意味著開發(fā)者不需要再自己創(chuàng)建構(gòu)建過程。
開發(fā)者不需要再關(guān)心每一個(gè)配置細(xì)節(jié)胀屿。Maven 為工程提供了合理的默認(rèn)行為塘揣。當(dāng)創(chuàng)建 Maven 工程時(shí),Maven 會創(chuàng)建默認(rèn)的工程結(jié)構(gòu)宿崭。開發(fā)者只需要合理的放置文件亲铡,而在 pom.xml 中不再需要定義任何配置。
舉例說明葡兑,下面的表格展示了工程源碼文件奖蔓、資源文件的默認(rèn)配置,和其他一些配置讹堤。假定${basedir}
表示工程目錄:
為了構(gòu)建工程吆鹤,Maven 為開發(fā)者提供了選項(xiàng)來配置生命周期目標(biāo)和工程依賴(依賴于 Maven 的插件擴(kuò)展功能和默認(rèn)的約定)。大部分的工程管理和構(gòu)建相關(guān)的任務(wù)是由 Maven 插件完成的洲守。
開發(fā)人員不需要了解每個(gè)插件是如何工作的疑务,就能夠構(gòu)建任何給定的 Maven 工程。詳細(xì)內(nèi)容請參考 Maven 插件部分岖沛。