Maven是什么
Maven英文原意為“知識(shí)的積累”,也叫“專家”或“內(nèi)行”。是一個(gè)基于Java平臺(tái)的項(xiàng)目管理工具。無(wú)論瀑布式開發(fā),還是敏捷式開發(fā),Maven都能工作得很好。
構(gòu)建
構(gòu)建每天都在發(fā)生,從早上上班開始到下班,我們都在執(zhí)行編譯、打包、單元測(cè)試、打包、持續(xù)集成等工作。這一系列的動(dòng)作,都是基于構(gòu)建。構(gòu)建不僅僅是生成class、生成jar,它更是為了簡(jiǎn)化我們的這些工作而衍生出來(lái)的一個(gè)活動(dòng)。
Maven扮演的角色
Maven的用途就是為了“構(gòu)建”。它異常強(qiáng)大,能一鍵式地完成我們想要的清除、編譯、打包、CI等工作。我們往往只需要一些簡(jiǎn)單的命令,如:maven clean install,就能達(dá)到我們想要的效果。不管是設(shè)計(jì)、編碼、開發(fā)和wiki,我們都盡量避免重復(fù)。重復(fù)往往意味著錯(cuò)誤和低效。而Maven能最大化地消除構(gòu)建的重復(fù),也帶來(lái)了構(gòu)建的標(biāo)準(zhǔn)。3套生命周期穿插其中,自帶很多功能強(qiáng)大的插件,方便擴(kuò)展的插件書寫,這些都極大地簡(jiǎn)化和標(biāo)準(zhǔn)化我們的行為。中央倉(cāng)庫(kù)或局域網(wǎng)倉(cāng)庫(kù)(nexus)能很好地對(duì)構(gòu)件進(jìn)行依賴儲(chǔ)存和管理。
Maven幫我們做了什么
- IDE并非無(wú)敵
優(yōu)秀的IDE能極大地提高我們的生產(chǎn)力,它能完成一系列的編譯、打包和調(diào)試等工作,甚至能對(duì)一些錯(cuò)誤和警告進(jìn)行報(bào)警,以便我們很快地發(fā)現(xiàn)其中的問(wèn)題并解決。但是它缺少了對(duì)項(xiàng)目和模塊的集成,對(duì)于上述的一些功能,也只能依靠手動(dòng)。
同時(shí),IDE甚至沒(méi)有統(tǒng)一的配置,它太過(guò)依賴操作系統(tǒng)的環(huán)境了。 - 老式的編譯工具
老式的編譯工具,如最初的make、cmake、ant,都和操作系統(tǒng)關(guān)聯(lián)太過(guò)緊密,很難進(jìn)行跨系統(tǒng)兼容和遷移
總結(jié)
我們不需要因?yàn)閙aven的強(qiáng)大,而認(rèn)為其難以入門和學(xué)習(xí)。相反,我們會(huì)發(fā)現(xiàn)其帶來(lái)了便利性和易用性,同時(shí)也沒(méi)有讓我們覺(jué)得很難。就像我,學(xué)習(xí)的過(guò)程反而讓我很享受。