Maven介紹:
Maven是項(xiàng)目對(duì)象模型(POM),是一個(gè)項(xiàng)目模塊管工具。能很好的管理模塊化開(kāi)發(fā)、模塊jar包的分享,并且可以自動(dòng)下載工程所需要的依賴(lài)包。
在開(kāi)發(fā)的過(guò)程中我們需要一些可重用的代碼來(lái)加快開(kāi)發(fā)的速度,因?yàn)榭偛豢赡芤恍┩ㄓ玫拇a每次都需要自己編寫(xiě)吧,那樣的話效率很低,或許我們可以將這些類(lèi)復(fù)制到別的開(kāi)發(fā)工具中使用,但是一兩個(gè)類(lèi)還好說(shuō),如果有幾十個(gè)類(lèi)該如何復(fù)制,而且用復(fù)制這種方式的話代碼也容易被修改或刪除。
在早期沒(méi)有Maven的時(shí)候,有一種方式是將可重用的代碼打包成jar包,然后用導(dǎo)jar包的方式來(lái)將這些可重用的代碼模塊在不同的【學(xué)Java,到凱哥學(xué)堂kaige123.com】開(kāi)發(fā)工具上使用。所以這就有一個(gè)問(wèn)題:如果需要導(dǎo)入很多個(gè)jar包怎么辦?使用的jar包有依賴(lài)包怎么辦?jar包的代碼要進(jìn)行升級(jí)怎么辦?
Maven的出現(xiàn)解決了這三個(gè)“怎么辦”,Maven能夠幫助開(kāi)發(fā)人員自動(dòng)在中央類(lèi)庫(kù)上下載依賴(lài)包,能夠自動(dòng)批量下載并導(dǎo)入jar包,代碼需要進(jìn)行升級(jí)的話只需要更改一下工程的核心配置文件就可以直接發(fā)布了,發(fā)布后其他用戶就可以直接通過(guò)Maven的中央類(lèi)庫(kù)下載,所以Maven就是幫助我們進(jìn)行模塊化開(kāi)發(fā)的,能夠加快開(kāi)發(fā)速度和構(gòu)建工程環(huán)境、管理模塊減輕開(kāi)發(fā)人員的壓力。Maven的中央類(lèi)庫(kù)是國(guó)際性的,全世界都可以從中央類(lèi)庫(kù)上下載自己所需要的jar包。
Maven在下載依賴(lài)的包時(shí),會(huì)先尋找本地類(lèi)庫(kù)有沒(méi)有,如果沒(méi)有本地類(lèi)庫(kù)就會(huì)去企業(yè)類(lèi)庫(kù)里找,企業(yè)類(lèi)庫(kù)里還是沒(méi)有的話,才到中央類(lèi)庫(kù)上找,在中央類(lèi)庫(kù)上找到后會(huì)先保存一份在企業(yè)類(lèi)庫(kù),然后再保存一份到本地類(lèi)庫(kù),最后才到達(dá)你的項(xiàng)目工程里,所以第一次下載包會(huì)慢一些,但是第二次再使用這個(gè)包的時(shí)候就可以直接在本地類(lèi)庫(kù)或者企業(yè)類(lèi)庫(kù)中尋找到了,而且在公司里其他的開(kāi)發(fā)的人員都可以直接在企業(yè)類(lèi)庫(kù)中下載需要的包,所以企業(yè)類(lèi)庫(kù)也起到一個(gè)緩存的作用。
示意圖:
Maven的中央類(lèi)庫(kù)不止一個(gè),有很多個(gè),最常用的是mvnrepository庫(kù):
mvnrepository地址:
https://mvnrepository.com/
Maven工具官網(wǎng)下載地址:
http://maven.apache.org/download.cgi
Maven的配置:
下載好后需要配置一下系統(tǒng)的環(huán)境變量,先新建一個(gè)環(huán)境變量MAVEN_HOME,然后把Maven的bin目錄所在的路徑粘貼上去,接著把bin目錄路徑添加到PATH路徑里:
1.新建MAVEN_HOME:
2.把bin目錄路徑添加到PATH路徑里:
接著更改Maven的本地庫(kù):
自定義配置好本地庫(kù),之后Maven下載的jar包都會(huì)在這個(gè)文件夾下。
配置中央類(lèi)庫(kù)(有需要的才配置,沒(méi)需要的默認(rèn)即可無(wú)需配置):
然后自己根據(jù)自己的需求更改網(wǎng)絡(luò)地址即可,一般沒(méi)啥需求的話使用默認(rèn)的就行了 :
在Eclipse中配置Maven的本地庫(kù):
先在Eclipse的菜單欄中點(diǎn)擊Window然后點(diǎn)擊Preferences進(jìn)入以下界面:
Maven在Eclipse上就配置好了。
接下來(lái)打開(kāi)cmd輸入mvn help:system命令,此命令會(huì)下載一些系統(tǒng)相關(guān)的包:
下載完成:
現(xiàn)在就可以在Eclipse上使用Maven構(gòu)建項(xiàng)目工程了,使用快捷鍵Ctrl+n進(jìn)入以下界面:
點(diǎn)擊下一步后會(huì)進(jìn)入Maven提供的工程模板選擇界面,當(dāng)然自己也可以構(gòu)建自己的工程模板:
如果不想使用這些模板就返回上一步,勾選跳過(guò)模板:
上圖的進(jìn)一步說(shuō)明:
Group Id:工程組的id,這個(gè)id必須是全球唯一的,所以最好使用域名作為id,因?yàn)檫@ 個(gè)id是你工程的唯一識(shí)別id,別人下載你的工程包的時(shí)候,是根據(jù)這個(gè)id來(lái)下載的, 如果與別人的工程id重名會(huì)導(dǎo)致混亂。
Artifact Id:項(xiàng)目名稱(chēng)和模塊名稱(chēng),如果有子模塊或功能就寫(xiě)在后面。
Version:表示這個(gè)工程的版本,一般創(chuàng)建的時(shí)候都是0.0.1的實(shí)驗(yàn)版本。
Packaging:選擇工程的包:jar是普通java工程,pom是文件創(chuàng)建,war包是web工程。
Name:工程名字。
Description:工程的介紹或說(shuō)明。
Parent Project:父工程信息,有需要?jiǎng)t填寫(xiě)無(wú)需要可以不填寫(xiě)。
創(chuàng)建完成,創(chuàng)建的時(shí)候會(huì)下載一些所需要的文件,等待一下即可:
打開(kāi)配置文件可以查看到工程的一些基本信息:
試一下在中央庫(kù)中下載包:
例如我要下載Hibernate相關(guān)的包,在中央庫(kù)的網(wǎng)站搜索一下,然后點(diǎn)擊一個(gè)進(jìn)去,然后選擇自己需要的版本:
如果把配置文件中的依賴(lài)刪掉的話,下載的包也會(huì)移除,不過(guò)并不會(huì)刪掉,會(huì)保存在本地庫(kù)中,下次使用的時(shí)候就會(huì)在本地庫(kù)中找。
共享工程jar給別人使用:
首先要將工程安裝到【學(xué)Java,到凱哥學(xué)堂kaige123.com】本地庫(kù),右鍵配置文件,選擇Run As,接著選擇Maven install就會(huì)開(kāi)始發(fā)布到本地庫(kù)了。
發(fā)布完成:
接著打開(kāi)配置文件:
復(fù)制到另一個(gè)開(kāi)發(fā)工具工程的配置文件中:
如果下載的包有依賴(lài)包的話會(huì)自動(dòng)下載依賴(lài)的包,版本升級(jí)的話只需要更改一下版本數(shù)字即可:
然后保存一下,同樣的點(diǎn)擊配置文件的Maven install發(fā)布到本地庫(kù)中。
另一個(gè)開(kāi)發(fā)工具的用戶只需要更改一下版本號(hào),接著保存就會(huì)自動(dòng)下載:
Maven的初步使用就完成了,可以看得出Maven這個(gè)工具能夠很方便的管理、發(fā)布、下載模塊或jar包。