一篇文章帶你初步認(rèn)識Maven
1、引言
你能搜到這個(gè)教程,說明你對 Maven 感興趣,但是又不是太理解。那么接下來這個(gè)系列的教程將會詳細(xì)講解 Maven 的用法,相信你看完之后,一定能對 Maven 的理解更進(jìn)一步!
2、常規(guī)項(xiàng)目開發(fā)存在的問題
通常Web項(xiàng)目開發(fā)只會創(chuàng)建一個(gè)工程,然后所有的jar包都會存放到 WEB-INF/lib 目錄下,如下圖所示:
通過上面的目錄結(jié)構(gòu)我們可以分析出如下問題:
①、一個(gè)項(xiàng)目就是一個(gè)web工程。如果項(xiàng)目比較龐大,那么利用包名package來劃分模塊,顯然容易造成混淆而且不利于分工合作;
②、項(xiàng)目中需要的 jar 包必須手動 復(fù)制,粘貼 到 WEB-INF/lib 目錄下。這會導(dǎo)致每創(chuàng)建一個(gè)新的工程就需要將 jar 包重復(fù)復(fù)制到 lib 目錄下,從而造成工作區(qū)存在大量重復(fù)的文件;
③、jar需要我們手動去官網(wǎng)上或者其他途徑下載;
④、一個(gè) jar 包依賴的其他 jar 包,需要自己手動加入到項(xiàng)目中,而且很有可能我們漏掉了某個(gè)依賴關(guān)系,導(dǎo)致項(xiàng)目運(yùn)行報(bào)錯(cuò)。
那么如何解決這些問題呢?本系列的主角 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)建生命周期。提供了開發(fā)人員構(gòu)建一個(gè)完整的生命周期框架,開發(fā)團(tuán)隊(duì)可以自動完成該項(xiàng)目的基礎(chǔ)設(shè)施建設(shè)。相信如果對 Maven 沒有任何了解的,看了這段話等于沒看,不過沒關(guān)系,后面我們將會逐漸揭開 Maven 的神秘面紗。什么是 Maven,你只需要知道這玩意能簡化和標(biāo)準(zhǔn)化項(xiàng)目建設(shè)過程。
4、Maven 的歷史
Maven的最初設(shè)計(jì),以簡化Jakarta Turbine項(xiàng)目的建設(shè)進(jìn)程。有幾個(gè)項(xiàng)目,每個(gè)項(xiàng)目包含了稍微不同的Ant構(gòu)建文件。 JAR中檢查到CVS。Apache組織開發(fā)的Maven可以建立多個(gè)項(xiàng)目,發(fā)布項(xiàng)目信息,項(xiàng)目部署。
5、Maven 的目標(biāo)
Maven主要目標(biāo)是提供開發(fā)人員
①、項(xiàng)目是可重復(fù)使用,易維護(hù),更容易理解的一個(gè)綜合模型。
②、插件或交互的工具,這種聲明性的模式。
Maven項(xiàng)目的結(jié)構(gòu)和內(nèi)容是在一個(gè)XML文件中聲明,pom.xml的項(xiàng)目對象模型(POM),這是整個(gè)Maven系統(tǒng)的基本單元?! ?/p>
6、Maven 的理念
約定優(yōu)于配置!??!
開發(fā)人員不需要?jiǎng)?chuàng)建構(gòu)建過程本身,不必知道提到的每一個(gè)配置的詳細(xì)信息。Maven提供了合理的默認(rèn)行為的項(xiàng)目。創(chuàng)建一個(gè)Maven項(xiàng)目時(shí),Maven創(chuàng)建默認(rèn)的項(xiàng)目結(jié)構(gòu)。開發(fā)者只需要把相應(yīng)的文件和她需要在pom.xml中定義即可。
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Spring整合MyBatis(Maven+MySQL)圖文教程詳解
這篇文章主要介紹了Spring整合MyBatis(Maven+MySQL)圖文教程詳解的相關(guān)資料,需要的朋友可以參考下2016-07-07springboot集成shiro詳細(xì)總結(jié)
這幾天在看 shiro,用 springboot 集成了一下,下面的這個(gè)例子中主要介紹了 shiro 的認(rèn)證和授權(quán),以及鹽值加密的功能.程序可以運(yùn)行起來.這里只做一個(gè)簡單的介紹,后續(xù)會針對各個(gè)功能做一個(gè)詳細(xì)的介紹,這里不做過多的贅述,需要的朋友可以參考下2021-05-05Java模擬實(shí)現(xiàn)HashMap算法流程詳解
在java開發(fā)中,HashMap是最常用、最常見的集合容器類之一,文中通過示例代碼介紹HashMap為啥要二次Hash,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-02-02Java使用Catcher捕獲異常的實(shí)現(xiàn)
本文主要介紹了Java使用Catcher捕獲異常的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05Java實(shí)現(xiàn)導(dǎo)出word表格的示例詳解
這篇文章主要為大家詳細(xì)介紹了如何利用Java語言導(dǎo)出word表格功能,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的小伙伴可以參考一下2022-12-12