中央仓库是maven核心自带的远程仓库。它包括了绝大部分开源的构件。在默认配置下,当本地仓库没有maven须要的构件的时候,它就会尝试从中央仓库下载。私服是还有一种特殊的远程仓库。为了节省带宽和时间,应该在局域网内架设一个私有的仓库server。用其代理全部外部的远程仓库。
内部的项目还能部署到私服上供其它项目使用。除了中央仓库和私服。还有非常多其它公开的远程仓库,常见的有java.net Maven库(http://download.java.net/maven/2/)和jboss Maven库(http://repository.jboss.com/maven2/)等。
<settings>
<localRepository>D:ITmaven epo</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.9confsettings.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>