- 倉庫簡介:
沒有Maven時,項目用到的.jar文件通常需要拷貝到/ib目錄,項目多了,拷貝的文件副本就多了,佔用磁盤空間,且難於管理。
Maven使用一個稱之爲倉庫的目錄,根據構件的座標統一存儲這些構件的唯一副本,在項目中通過依賴聲明,可以方便的引用構件。
- 倉庫的佈局:
構件都有唯一的座標,Maven根據座標管理構件的存儲。
文件路徑對應了:groupld/artifactld/version/artifactld-version.packaging-5
- 倉庫分類:
Maven倉庫分爲本地倉庫和遠程倉庫,尋找構件時,首先從本地倉庫找,找不到則到遠程倉庫找,再找不到就報錯。
在遠程倉庫中找到了,就下載到本地倉庫再使用。
中央倉庫是Maven核心自帶的遠程倉庫。·除了中央倉庫,還有其它很多公共的遠程倉庫。
- 本地倉庫:
Maven 本地倉庫默認地址爲:${user.home]/.m2/repository。
通過修改%MAVEN_HOME%/conf/settings.xml(或者:
${user.home}/.m2/settings.xml,針對當前用戶(推薦))配置文件可以更改本地倉庫的位置。
maven的所有構件均通過座標進行組織和管理。maven的座標通過5個元素進行定義,其中groupld、artifactld、version是必須的,packaging是可選的(默認爲jar),classifier是不能直接定義的。
groupld:定義當前Maven項目所屬的實際項目,跟Java包名類似,通常與域名反向一一對應。
artifactld:定義當前Maven項目的一個模塊,默認情況下,Maven生成的構件,其文件名會以artifactld 開頭,如javax.servlet-api-3.1.0.jar。
version:定義項目版本。
packaging:定義項目打包方式,如jar,war,pom,zip……,默認爲jar。
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
</dependencies>
使用Maven在pom.xml文件中聲明依賴,可以方便的管理依賴。
type:依賴類型,對應構件中定義的packaging,可不聲明,默認爲jar。
scope:依賴範圍。
- 使用Maven管理項目-使用Maven好處
Maven可以對第三方依賴庫進行統一的版本管理。
使用Maven可以統一項目的目錄結構。
Maven還可以統一項目的構建。
Maven還支持多種插件。
使用Maven可以大大降低項目文件的大小。