Maven
目錄
1 學(xué)習(xí)目標(biāo) 1
2 Maven 介紹 1
3 Maven 安裝與配置 3
4 Maven 快速入門(mén) 6
5 Maven 常用命令 7
6 Maven的概念模型 8
學(xué)習(xí)目標(biāo)
Maven 介紹
Maven是Apache 下開(kāi)源的、純java開(kāi)發(fā)的一個(gè)項(xiàng)目管理工具。使用Maven 對(duì)項(xiàng)目進(jìn)行構(gòu)建、依賴管理。
什么是項(xiàng)目構(gòu)建
項(xiàng)目構(gòu)建是一個(gè)項(xiàng)目從編寫(xiě)代碼、編譯、測(cè)試、運(yùn)行、打包、部署、運(yùn)行的過(guò)程。
傳統(tǒng)的eclipse 構(gòu)建項(xiàng)目過(guò)程如下
- 在開(kāi)發(fā)工具中創(chuàng)建項(xiàng)目
- 在項(xiàng)目中編寫(xiě)源代碼和配置文件
- 對(duì)源代碼進(jìn)行編譯,即JAVA 文件編譯成class 文件(一般開(kāi)發(fā)工具會(huì)自動(dòng)編譯)
- Junit 單元測(cè)試
- 將工程打成war 包部署至tomcat或jetty中運(yùn)行
Maven 構(gòu)建項(xiàng)目的步驟
Maven 對(duì)項(xiàng)目的每個(gè)過(guò)程進(jìn)行標(biāo)準(zhǔn)化管理,使用一個(gè)命令就可以完成一個(gè)標(biāo)準(zhǔn)過(guò)程。
- compile :Java文件編譯成.class文件
- clean : 清理class文件
- package :java 工程打包成jar 文件,web 工程打包成war文件
- Jetty:run 運(yùn)行一個(gè)web工程
什么是依賴管理
- 什么是依賴?
一個(gè)java 項(xiàng)目需要第三方的JAR 支持,才能運(yùn)行,那么該項(xiàng)目就依賴的該jar 包。
- 什么依賴管理?
對(duì)項(xiàng)目依賴的JAR 包進(jìn)行規(guī)范化管理
傳統(tǒng)項(xiàng)目和maven項(xiàng)目管理對(duì)比
傳統(tǒng)項(xiàng)目
需要人工添加相關(guān)第三方的jar到項(xiàng)目中,這樣可能存在的問(wèn)題
- 沒(méi)有對(duì)Jar 包版本的統(tǒng)一進(jìn)行管理,容易造成版本沖突
- Jar 包不容易找到
- Jar 包添加到工程中,導(dǎo)致工程過(guò)大
Maven 項(xiàng)目
Maven 項(xiàng)目不需要手工添加jar 到項(xiàng)目中,開(kāi)發(fā)人員只需要維護(hù)pom.xml配置文件,在配置文件中維護(hù)依賴jar包的坐標(biāo),maven會(huì)自動(dòng)從倉(cāng)庫(kù)中下載jar、運(yùn)行。
好處:
- Pom.xml 中版本統(tǒng)一,不會(huì)出現(xiàn)沖突的問(wèn)題
- Maven 團(tuán)隊(duì)維護(hù)jar 文件,當(dāng)前使用jar 包,maven倉(cāng)庫(kù)中都有,使用方便。
使用maven 的好處
- 依賴管理
- 一步構(gòu)建
- Maven 跨平臺(tái),可在windows,linux上運(yùn)行
- Maven 遵循開(kāi)發(fā)規(guī)范,有利于提高大型團(tuán)隊(duì)的開(kāi)發(fā)效率,降低維護(hù)成本
Maven 安裝與配置
下載安裝
- 下載路徑http://maven.apache.org/
- 解壓到不含中文和空格的目錄
- 配置maven環(huán)境變量
添加到path
運(yùn)行 cmd進(jìn)入,輸入mvn –v 如果提示下圖,則配置成功
Maven 工作流程
maven 解析 在pom.xml 文件,根據(jù)坐標(biāo)去本地倉(cāng)庫(kù)(local repository)中找尋需要的jar ,如果本地倉(cāng)庫(kù)中沒(méi)有,則自動(dòng)通過(guò)互聯(lián)網(wǎng)去遠(yuǎn)程倉(cāng)庫(kù)(remote repository)中下載需要的 jar 到本地倉(cāng)庫(kù)中。本地倉(cāng)庫(kù)可以理解為緩存.
如果要想從外網(wǎng)上下載,如eclipse 中
maven倉(cāng)庫(kù)
本地倉(cāng)庫(kù)
用來(lái)存儲(chǔ)從遠(yuǎn)程倉(cāng)庫(kù)或中央倉(cāng)庫(kù)下載的jar 包.
項(xiàng)目中使用的jar, 從本地倉(cāng)庫(kù)中查找。
本地倉(cāng)庫(kù)默認(rèn)位置:
${user.home}/.m2/repository ${user.home}代表為當(dāng)前windows用戶
遠(yuǎn)程倉(cāng)庫(kù)
如果本地倉(cāng)庫(kù)沒(méi)有需要的jar,則去遠(yuǎn)程倉(cāng)庫(kù)查找。遠(yuǎn)程倉(cāng)庫(kù)可以在局域網(wǎng)內(nèi),也可以在局域網(wǎng)外。
遠(yuǎn)程倉(cāng)庫(kù)可以理解為公司的私服,該倉(cāng)庫(kù)中的jar 有所在公司的人維護(hù),服務(wù)于具體某個(gè)公司或組織。
中央倉(cāng)庫(kù)
在maven中設(shè)置一個(gè)遠(yuǎn)程倉(cāng)庫(kù)地址http://respo1.maven.org/maven2,
中央倉(cāng)庫(kù)服務(wù)與整個(gè)互聯(lián)網(wǎng),它是由Maven 團(tuán)隊(duì)維護(hù),里面包含了非常全的jar 包。
配置本地倉(cāng)庫(kù)地址
在maven 的安裝路徑的 conf 下設(shè)置settings.xml
<localRepository>D:toolsrepository</localRepository>
表示本地的倉(cāng)庫(kù)地址為D:toolsrepository該路徑下
預(yù)告
下次繼續(xù)介紹在開(kāi)發(fā)工具中的使用
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。