中央倉庫是maven核心自帶的遠程倉庫。它包括了絕大部分開源的構件。在默認配置下,當本地倉庫沒有maven須要的構件的時候,它就會嘗試從中央倉庫下載。私服是還有一種特殊的遠程倉庫。為了節省帶寬和時間,應該在局域網內架設一個私有的倉庫server。用其代理全部外部的遠程倉庫。
內部的項目還能部署到私服上供其它項目使用。除了中央倉庫和私服。還有非常多其它公開的遠程倉庫,常見的有java.net Maven庫(http://download.java.net/maven/2/)和jboss Maven庫(http://repository.jboss.com/maven2/)等。
<settings>
<localRepository>D:\IT\maven\repo</localRepository>
<settings>
須要注意的是。默認情況下,~/.m2/settings.xml文件是不存在的,用戶須要從Maven安裝文件夾復制$M2_HOME/conf/settings.xml文件再進行編輯。
<repositories>
<repository>
<id>central</id>
<name>Central Repository</name>
<url>https://repo.maven.apache.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
這段配置使用central對中央倉庫進行唯一標識,其名稱為Central Repository,它使用default進行倉庫布局。最后須要注意的是snapshots元素,其子元素enabled的值為false,表示不從該中央倉庫下載快照版本號的構件。
舉個樣例,http://maven.oschina.net/content/groups/public/ 是中央倉庫http://repo1.maven.org/maven2/ 在中國的鏡像,因為地理位置的因素。該鏡像往往能夠提供比中央倉庫更快的服務。
因此,能夠配置Maven使用該鏡像來替代中央倉庫。
編輯settings.xml(apache-maven-3.3.9\conf\settings.xml)。代碼例如以下:
<mirrors>
<mirror>
<id>maven.oschina.net</id>
<mirrorOf>central</mirrorOf>
<name>maven mirror in China</name>
<url>http://maven.oschina.net/content/groups/public/</url>
</mirror>
</mirrors>
id表示鏡像的唯一標識符,name表示鏡像的名稱。url表示鏡像的地址。
因為私服能夠代理不論什么外部的公共倉庫(包含中央倉庫),因此。對於組織內部的Maven用戶來說。使用一個私服地址就等於使用了全部須要的外部倉庫,這能夠將配置集中到私服。從而簡化Maven本身的配置。
在這樣的情況下,不論什么須要的構件都能夠從私服獲得,私服就是全部倉庫的鏡像。
以后再慢慢介紹私服的使用。
<mirror>
<id>CN</id>
<name>OSChina Central</name>
<url>http://maven.oschina.net/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo2.maven.org/maven2/</url>
</mirror>
<mirror>
<id>net-cn</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://maven.net.cn/content/groups/public/</url>
</mirror>
<mirror>
<id>ibiblio</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>
</mirror>
<mirror>
<id>jboss-public-repository-group</id>
<mirrorOf>central</mirrorOf>
<name>JBoss Public Repository Group</name>
<url>http://repository.jboss.org/nexus/content/groups/public</url>
</mirror>
<mirror>
<id>JBossJBPM</id>
<mirrorOf>central</mirrorOf>
<name>JBossJBPM Repository</name>
<url>https://repository.jboss.org/nexus/content/repositories/releases/</url>
</mirror>
