一篇文章帶你初步認(rèn)識(shí)Maven
1、引言
你能搜到這個(gè)教程,說(shuō)明你對(duì) Maven 感興趣,但是又不是太理解。那么接下來(lái)這個(gè)系列的教程將會(huì)詳細(xì)講解 Maven 的用法,相信你看完之后,一定能對(duì) Maven 的理解更進(jìn)一步!
2、常規(guī)項(xiàng)目開(kāi)發(fā)存在的問(wèn)題
通常Web項(xiàng)目開(kāi)發(fā)只會(huì)創(chuàng)建一個(gè)工程,然后所有的jar包都會(huì)存放到 WEB-INF/lib 目錄下,如下圖所示:

通過(guò)上面的目錄結(jié)構(gòu)我們可以分析出如下問(wèn)題:
①、一個(gè)項(xiàng)目就是一個(gè)web工程。如果項(xiàng)目比較龐大,那么利用包名package來(lái)劃分模塊,顯然容易造成混淆而且不利于分工合作;
②、項(xiàng)目中需要的 jar 包必須手動(dòng) 復(fù)制,粘貼 到 WEB-INF/lib 目錄下。這會(huì)導(dǎo)致每創(chuàng)建一個(gè)新的工程就需要將 jar 包重復(fù)復(fù)制到 lib 目錄下,從而造成工作區(qū)存在大量重復(fù)的文件;
③、jar需要我們手動(dòng)去官網(wǎng)上或者其他途徑下載;
④、一個(gè) jar 包依賴的其他 jar 包,需要自己手動(dòng)加入到項(xiàng)目中,而且很有可能我們漏掉了某個(gè)依賴關(guān)系,導(dǎo)致項(xiàng)目運(yùn)行報(bào)錯(cuò)。
那么如何解決這些問(wèn)題呢?本系列的主角 Maven 應(yīng)運(yùn)而生了。
3、什么是 Maven ?
Maven 讀音是[?mev?n],也就是“霉文”,而不是讀“馬文”。它是一個(gè)項(xiàng)目管理和綜合工具,Maven使用標(biāo)準(zhǔn)的目錄結(jié)構(gòu)和默認(rèn)構(gòu)建生命周期。提供了開(kāi)發(fā)人員構(gòu)建一個(gè)完整的生命周期框架,開(kāi)發(fā)團(tuán)隊(duì)可以自動(dòng)完成該項(xiàng)目的基礎(chǔ)設(shè)施建設(shè)。相信如果對(duì) Maven 沒(méi)有任何了解的,看了這段話等于沒(méi)看,不過(guò)沒(méi)關(guān)系,后面我們將會(huì)逐漸揭開(kāi) Maven 的神秘面紗。什么是 Maven,你只需要知道這玩意能簡(jiǎn)化和標(biāo)準(zhǔn)化項(xiàng)目建設(shè)過(guò)程。
4、Maven 的歷史
Maven的最初設(shè)計(jì),以簡(jiǎn)化Jakarta Turbine項(xiàng)目的建設(shè)進(jìn)程。有幾個(gè)項(xiàng)目,每個(gè)項(xiàng)目包含了稍微不同的Ant構(gòu)建文件。 JAR中檢查到CVS。Apache組織開(kāi)發(fā)的Maven可以建立多個(gè)項(xiàng)目,發(fā)布項(xiàng)目信息,項(xiàng)目部署。
5、Maven 的目標(biāo)
Maven主要目標(biāo)是提供開(kāi)發(fā)人員
①、項(xiàng)目是可重復(fù)使用,易維護(hù),更容易理解的一個(gè)綜合模型。
②、插件或交互的工具,這種聲明性的模式。
Maven項(xiàng)目的結(jié)構(gòu)和內(nèi)容是在一個(gè)XML文件中聲明,pom.xml的項(xiàng)目對(duì)象模型(POM),這是整個(gè)Maven系統(tǒng)的基本單元?! ?/p>
6、Maven 的理念
約定優(yōu)于配置?。?!
開(kāi)發(fā)人員不需要?jiǎng)?chuàng)建構(gòu)建過(guò)程本身,不必知道提到的每一個(gè)配置的詳細(xì)信息。Maven提供了合理的默認(rèn)行為的項(xiàng)目。創(chuàng)建一個(gè)Maven項(xiàng)目時(shí),Maven創(chuàng)建默認(rèn)的項(xiàng)目結(jié)構(gòu)。開(kāi)發(fā)者只需要把相應(yīng)的文件和她需要在pom.xml中定義即可。
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Java-lambda表達(dá)式入門(mén)看這一篇就夠了
lambda表達(dá)式最簡(jiǎn)單的作用就是用于簡(jiǎn)化創(chuàng)建匿名內(nèi)部類(lèi)對(duì)象,Lambda表達(dá)式是一個(gè)可傳遞的代碼塊,可以在以后執(zhí)行一次或多次,下面通過(guò)本文給大家介紹Java-lambda表達(dá)式入門(mén)教程,感興趣的朋友一起看看吧2021-05-05
SpringCloud?Eureka應(yīng)用全面介紹
Eureka是Netflix開(kāi)發(fā)的服務(wù)發(fā)現(xiàn)框架,本身是一個(gè)基于REST的服務(wù),主要用于定位運(yùn)行在AWS域中的中間層服務(wù),以達(dá)到負(fù)載均衡和中間層服務(wù)故障轉(zhuǎn)移的目的2022-09-09
解決BigDecimal轉(zhuǎn)long丟失精度的問(wèn)題
這篇文章主要介紹了解決BigDecimal轉(zhuǎn)long丟失精度的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12
SpringSecurity集成圖片驗(yàn)證碼的詳細(xì)過(guò)程
SpringSecurity是通過(guò)過(guò)濾器鏈來(lái)完成的,接下來(lái)的驗(yàn)證碼,可以嘗試創(chuàng)建一個(gè)過(guò)濾器放到Security的過(guò)濾器鏈中,在自定義的過(guò)濾器中比較驗(yàn)證碼,本文通過(guò)實(shí)例代碼介紹SpringSecurity集成圖片驗(yàn)證碼的詳細(xì)過(guò)程,感興趣的朋友一起看看吧2023-12-12
bootstrap實(shí)現(xiàn)多個(gè)下拉框同時(shí)搜索的實(shí)例
下面小編就為大家?guī)?lái)一篇bootstrap實(shí)現(xiàn)多個(gè)下拉框同時(shí)搜索的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07

