Maven詳解(一)------ Maven概述

1、引言
你能搜到這個教程,說明你對 Maven 感興趣,但是又不是太理解。那么接下來這個系列的教程將會詳細講解 Maven 的用法,相信你看完之后,一定能對 Maven 的理解更進一步!
?
2、常規(guī)項目開發(fā)存在的問題
通常Web項目開發(fā)只會創(chuàng)建一個工程,然后所有的jar包都會存放到 WEB-INF/lib 目錄下,如下圖所示:
?

通過上面的目錄結(jié)構(gòu)我們可以分析出如下問題:
?、佟⒁粋€項目就是一個web工程。如果項目比較龐大,那么利用包名package來劃分模塊,顯然容易造成混淆而且不利于分工合作;
?、凇㈨椖恐行枰?jar 包必須手動 復(fù)制,粘貼 到 WEB-INF/lib 目錄下。這會導(dǎo)致每創(chuàng)建一個新的工程就需要將 jar 包重復(fù)復(fù)制到 lib 目錄下,從而造成工作區(qū)存在大量重復(fù)的文件;
?、?、jar需要我們手動去官網(wǎng)上或者其他途徑下載;
④、一個 jar 包依賴的其他 jar 包,需要自己手動加入到項目中,而且很有可能我們漏掉了某個依賴關(guān)系,導(dǎo)致項目運行報錯。
? 那么如何解決這些問題呢?本系列的主角 Maven 應(yīng)運而生了。
3、什么是 Maven ?
Maven 讀音是?[?mev?n],也就是“霉文”,而不是讀“馬文”。它是一個項目管理和綜合工具,Maven使用標(biāo)準(zhǔn)的目錄結(jié)構(gòu)和默認構(gòu)建生命周期。提供了開發(fā)人員構(gòu)建一個完整的生命周期框架,開發(fā)團隊可以自動完成該項目的基礎(chǔ)設(shè)施建設(shè)。相信如果對 Maven 沒有任何了解的,看了這段話等于沒看,不過沒關(guān)系,后面我們將會逐漸揭開 Maven 的神秘面紗。什么是 Maven,你只需要知道這玩意能簡化和標(biāo)準(zhǔn)化項目建設(shè)過程。
4、Maven 的歷史
Maven的最初設(shè)計,以簡化Jakarta Turbine項目的建設(shè)進程。有幾個項目,每個項目包含了稍微不同的Ant構(gòu)建文件。 JAR中檢查到CVS。Apache組織開發(fā)的Maven可以建立多個項目,發(fā)布項目信息,項目部署。
5、Maven 的目標(biāo)
Maven主要目標(biāo)是提供開發(fā)人員
①、項目是可重復(fù)使用,易維護,更容易理解的一個綜合模型。
?、?、插件或交互的工具,這種聲明性的模式。
Maven項目的結(jié)構(gòu)和內(nèi)容是在一個XML文件中聲明,pom.xml的項目對象模型(POM),這是整個Maven系統(tǒng)的基本單元。
6、Maven 的理念
約定優(yōu)于配置!?。?/strong>
開發(fā)人員不需要創(chuàng)建構(gòu)建過程本身,不必知道提到的每一個配置的詳細信息。Maven提供了合理的默認行為的項目。創(chuàng)建一個Maven項目時,Maven創(chuàng)建默認的項目結(jié)構(gòu)。開發(fā)者只需要把相應(yīng)的文件和她需要在pom.xml中定義即可。
那么如何使用 Maven 呢?請看下回分解。