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