Maven 是 Apache 軟件基金會(huì)的一個(gè)開源項(xiàng)目,是一個(gè)優(yōu)秀的項(xiàng)目構(gòu)建工具,它用來幫助開發(fā)者管理項(xiàng)目中的 jar,以及 jar 之間的依賴關(guān)系、完成項(xiàng)目的編譯、測試、打包和發(fā)布等工作。
Mavende優(yōu)點(diǎn)
1、原來的項(xiàng)目中需要的jar包必須手動(dòng)“復(fù)制”、”粘貼” 到WEB-INF/lib 項(xiàng)目下,而借Maven,可以將jar包僅僅保存在“倉庫”中,有需要使用的工程只需要“引用”這個(gè)文件,并不需要重復(fù)復(fù)制到工程中。文章源自四五設(shè)計(jì)網(wǎng)-http://www.wasochina.com/40321.html
2、原來的項(xiàng)目中所需要的jar包都是提前下載好的,而Maven在聯(lián)網(wǎng)狀態(tài)下會(huì)自動(dòng)下載所需要的jar包。首先在本地倉庫中找,找不到就在網(wǎng)上進(jìn)行下載。文章源自四五設(shè)計(jì)網(wǎng)-http://www.wasochina.com/40321.html
3、原來的項(xiàng)目中一個(gè)jar包所依賴的其他jar包必須手動(dòng)導(dǎo)進(jìn)來,而Maven會(huì)自動(dòng)將被依賴的jar包導(dǎo)進(jìn)來。文章源自四五設(shè)計(jì)網(wǎng)-http://www.wasochina.com/40321.html
4、原來的項(xiàng)目一個(gè)項(xiàng)目就是一個(gè)工程,而借助Maven可以將一個(gè)項(xiàng)目拆分成多個(gè)工程。文章源自四五設(shè)計(jì)網(wǎng)-http://www.wasochina.com/40321.html
環(huán)境搭建&安裝 下載maven服務(wù)器,
1、maven 官網(wǎng)文章源自四五設(shè)計(jì)網(wǎng)-http://www.wasochina.com/40321.html
2、點(diǎn)擊Download下載版本,如下圖:文章源自四五設(shè)計(jì)網(wǎng)-http://www.wasochina.com/40321.html
文章源自四五設(shè)計(jì)網(wǎng)-http://www.wasochina.com/40321.html
3、將下載好的文件進(jìn)行解壓。文章源自四五設(shè)計(jì)網(wǎng)-http://www.wasochina.com/40321.html
環(huán)境的配置
注意點(diǎn):Mac系統(tǒng)環(huán)境變量配置文件支持多個(gè),這里僅以 ~/.bash_profile 為例。JDK 必須是1.7以上。文章源自四五設(shè)計(jì)網(wǎng)-http://www.wasochina.com/40321.html
配置路徑文件,在命令行終端輸入一下命令:文章源自四五設(shè)計(jì)網(wǎng)-http://www.wasochina.com/40321.html
1 | open ~/.bash_profile |
需要將 maven 添加到系統(tǒng)環(huán)境變量里:
1 2 3 | #maven export MAVEN_HOME=/maven根路徑 export PATH=$MAVEN_HOME/bin: $PATH |
讓系統(tǒng)環(huán)境變量強(qiáng)制生效,在命令行終端輸入一下命令:
1 | source ~/.bash_profile |
差看maven 是否配置生效,在命令行終端輸入一下命令:
1 | mvn -version |
配置maven本地倉庫
需要在 maven 文件中找到 conf 文件夾下的 settings.xml 文件進(jìn)行修改,如下圖:
為了提高下載速度需要配置阿里云倉庫,如下圖:
1 2 3 4 5 6 7 | <!-- 配置阿里云鏡像倉庫 --> < mirror > ?? < id >alimaven</ id > ?? < name >aliyun maven</ name > ?? < mirrorOf >central</ mirrorOf > </ mirror > |
在idea中配置maven,如下圖:
maven工程的創(chuàng)建
創(chuàng)建一個(gè)新的工程new Project,如下圖:
創(chuàng)建好的工程,如下圖:
七、maven工程pom.xml配置
進(jìn)入maven?倉庫官網(wǎng),如下圖:
搜索自己想要的jar包,如下圖:
進(jìn)入到j(luò)ar詳情
進(jìn)入jar版本詳情:
在 Pom.xml 文件配置 jar 包信息(坐標(biāo)),使用 maven 自動(dòng)下載 jar 包到本地倉庫中,如下圖:
下載好的jar,如下圖:
Maven 坐標(biāo)
Maven 坐標(biāo)一套規(guī)則,它規(guī)定:世界上任何一個(gè)構(gòu)件都可以使用 Maven 坐標(biāo)并作為其唯一標(biāo)識(shí),Maven 坐標(biāo)包括 groupId、artifactId、version、packaging 等元素,只要用戶提供了正確的坐標(biāo)元素,Maven 就能找到對應(yīng)的構(gòu)件。
任何一個(gè)構(gòu)件都必須明確定義自己的坐標(biāo),這是 Maven 的強(qiáng)制要求,任何構(gòu)件都不能例外。我們在開發(fā) Maven 項(xiàng)目時(shí),也需要為其定義合適的坐標(biāo),只有定義了坐標(biāo),其他項(xiàng)目才能引用該項(xiàng)目生成的構(gòu)件。
Maven 坐標(biāo)主要由以下元素組成:
- groupId: 項(xiàng)目組 ID,定義當(dāng)前 Maven 項(xiàng)目隸屬的組織或公司,通常是唯一的。它的取值一般是項(xiàng)目所屬公司或組織的網(wǎng)址或 URL 的反寫,例如 con.xiaoqiang.www。
- artifactId: 項(xiàng)目 ID,通常是項(xiàng)目的名稱。
- version:版本。
- packaging:項(xiàng)目的打包方式,默認(rèn)值為 jar。
以上 4 個(gè)元素中 groupId、artifactId 和 version 是必須定義的,packaging 是可選的。
Maven 倉庫
Maven 倉庫可以分為 2 個(gè)大類:
- 本地倉庫
- 遠(yuǎn)程倉庫
當(dāng) Maven 根據(jù)坐標(biāo)尋找構(gòu)件時(shí),它會(huì)首先查看本地倉庫,若本地倉庫存在此構(gòu)件,則直接使用;若本地倉庫不存在此構(gòu)件,Maven 就會(huì)去遠(yuǎn)程倉庫查找,若發(fā)現(xiàn)所需的構(gòu)件后,則下載到本地倉庫使用。如果本地倉庫和遠(yuǎn)程倉庫都沒有所需的構(gòu)件,則 Maven 就會(huì)報(bào)錯(cuò)。
Maven POM
POM(Project Object Model,項(xiàng)目對象模型)是 Maven 的基本組件,它是以 xml 文件的形式存放在項(xiàng)目的根目錄下,名稱為 pom.xml。
POM 中定義了項(xiàng)目的基本信息,用于描述項(xiàng)目如何構(gòu)建、聲明項(xiàng)目依賴等等。
當(dāng) Maven 執(zhí)行一個(gè)任務(wù)時(shí),它會(huì)先查找當(dāng)前項(xiàng)目的 POM 文件,讀取所需的配置信息,然后執(zhí)行任務(wù)。在 POM 中可以設(shè)置如下配置:
- 項(xiàng)目依賴
- 插件
- 目標(biāo)
- 構(gòu)建時(shí)的配置文件
- 版本
- 開發(fā)者
- 郵件列表
在創(chuàng)建 POM 之前,首先要確定工程組(groupId),及其名稱(artifactId)和版本,在倉庫中這些屬性是項(xiàng)目的唯一標(biāo)識(shí)。一旦在 pom.xml 文件中配置了所依賴的 jar,Maven 會(huì)自動(dòng)從構(gòu)件倉庫中下載相應(yīng)的構(gòu)件。


評論