Maven為所有的項(xiàng)目在pom引入了坐標(biāo),基于坐標(biāo)機(jī)制可以唯一定位一個(gè)項(xiàng)目。
構(gòu)件:在Maven中,任何依賴(jar包,tomcat等),或項(xiàng)目(自己打包的jar,war等)輸出都可成為構(gòu)件。每個(gè)構(gòu)件都有自己的唯一標(biāo)識(唯一坐標(biāo)),由groupId,artifactId,和version等信息構(gòu)成,由此,Maven就可以對構(gòu)件進(jìn)行版本控制,管理。
根據(jù)前幾篇的學(xué)習(xí),坐標(biāo)包括哪些要素,已經(jīng)呼之欲出了。
<groupId>公司網(wǎng)址反寫.項(xiàng)目名</groupId>
<artifactId>項(xiàng)目名-模塊名</artifactId>
<version>大版本.分支版本.小版本號+版本類型</version>
<packaging>打包方式</packaging>
- groupid: 定義當(dāng)前Maven項(xiàng)目所屬的實(shí)際項(xiàng)目。因?yàn)楹芏鄷r(shí)候,一個(gè)實(shí)際的項(xiàng)目很可能有多個(gè)模塊組成,例如org.springframework項(xiàng)目就有spring-core、spring-beans、spring-context等模塊。
- artifactId: 定義當(dāng)前Maven項(xiàng)目在所屬實(shí)際項(xiàng)目中的具體模塊名稱。如spring-core為該具體模塊的名稱。
- version: 定義Maven項(xiàng)目當(dāng)前的版本。
- packaging: 打包方式,包括jar、war、pom等。
- classifier: 定義構(gòu)建輸出的一些附屬構(gòu)建。例如,我們生成了一個(gè)構(gòu)建a.jar,我們希望在構(gòu)建的時(shí)候也能生成一個(gè)與a.jar對應(yīng)的其源碼jar包,為a-sources.jar。則a-sources.jar即為附屬構(gòu)建,sources就是該附屬構(gòu)建的classifier。需要注意的是:不能在項(xiàng)目中直接定義classifier,因?yàn)楦綄贅?gòu)建不是默認(rèn)生成的,需要附加的插件才能生成。請參考: Maven中maven-source-plugin,maven-javadoc-plugin插件的使用
下面呢,繼續(xù)學(xué)習(xí)Maven倉庫,Maven倉庫分為本地倉庫、中央倉庫和鏡像倉庫。本地倉庫就是我們電腦上的倉庫,中央倉庫是Maven全球中心倉庫,鏡像倉庫則為內(nèi)容和中央倉庫一樣的另一個(gè)好像鏡子似的倉庫。
我相信,有很多小伙伴用Maven的中央倉庫,下載依賴的jar包很慢,那么,該怎么辦呢?放心,鏡像倉庫會(huì)幫助我們解決這個(gè)問題。
- 找到maven路徑中的【conf】文件夾,有個(gè)settings.xml文件,打開找到<mirrors></mirrors>標(biāo)簽,在里邊添加
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
這樣,阿里云鏡像就配置好了,以后下載任何jar包都會(huì)很快了~
- 接下來,假如我們想把本地倉庫路徑修改到別的盤呢?因?yàn)閙aven默認(rèn)的倉庫路徑是C盤,一旦重裝系統(tǒng),C盤的東西就沒了,所以相對來說,把倉庫安放在別的磁盤上更好。
還是settings.xml文件,找到【<localRepository>/path/to/local/repo</localRepository>】這一行,復(fù)制放在不是注釋的行里,并將標(biāo)簽內(nèi)容改成其他磁盤的路徑。例如:

Paste_Image.png
然后驗(yàn)證是否ok,打開cmd窗口隨便切換一個(gè)之前測試的demo,進(jìn)行clean掉target目錄,并compile這個(gè)demo。
稍等一兩秒,cmd里顯示BUILD SUCCESS之后,我們找到新倉庫文件夾:

Paste_Image.png
好了,我們更改后的新倉庫成功了!