1. Maven安装目录下的配置文件/conf/settings.xml是全局配置文件,而Maven本地仓库下(~/.m2)也可以配置一个settings.xml文件,用户家目录下的settings.xml文件一般是不存在的,它可以从/conf/settings.xml复制过来, 本地仓库下的配置文件只是针对当前用户,只对当前用户有效。当这两个文件都存在时,那么对于相同的配置信息,用户家目录下的settings.xml会覆盖maven安装目录下的settings.xml配置。
2. 在eclipse中Maven配置的User Settings中,有Global Setting和User Settings两项,分别对应Maven安装目录和用户家目录下配置文件路径。在全局的配置文件settings.xml中,元素<localRepository>元素就是本地仓库目录。
3. settings.xml中主要包括以下元素:
1)localRepository:
表示Maven本地仓库的目录。默认是用户家目录下面的.m2/repository目录。
2)interactiveMode:
表示是否使用交互模式,默认是true;如果设为false,那么当Maven需要用户进行输入的时候,它会使用一个默认值。
3)offline:
表示是否离线,默认是false。这个属性表示在Maven进行项目编译和部署等操作时是否允许Maven进行联网来下载所需要的信息。
4)pluginGroups:
在pluginGroups元素下面可以定义一系列的pluginGroup元素。表示当通过plugin的前缀来解析plugin的时候到哪里寻找。pluginGroup元素指定的是plugin的groupId。默认情况下,Maven会自动把org.apache.maven.plugins和org.codehaus.mojo添加到pluginGroups下。
5)mirrors :
用于定义远程仓库的镜像。Maven在下载组件时,首先去本地仓库查找,如果没有找到,才会去远程仓库查找。但是,有时远程仓库会比较忙,或者公司内部处于安全考虑,需要定义一个镜像,将对远程仓库的请求转换为对镜像地址的请求。每个远程仓库都有一个id,这样我们就可以创建自己的mirror来关联到该远程仓库,那么,以后需要从远程仓库下载组件的时候,Maven就可以从定义好的镜像中下载。每个远程仓库只能有一个mirror与之关联,但一个mirror可以同时关联(代理)多个元从仓库。
mirrorOf: 用来表示该mirror是关联的哪一个仓库,其值为其关联仓库的id。当要同时关联多个仓库时,这多个仓库之间可以用逗号隔开;当要关联所有的仓库 时,可以使用“*”表示;当要关联除某一个仓库以外的其他所有仓库时,可以表示为“*,!repositoryId”;当要关联不是localhost或用file请求的仓库时,可以表示为“external:*”。
<mirrors>
<mirror>
<id>mirrorId</id>
<mirrorOf>remote-repositoryId</mirrorOf> //远程仓库的ID
<name>mirror名称 </name>
<url>http://my.repository.com/repo/path</url> //镜像的url
</mirror>
</mirrors>
参考:https://www.cnblogs.com/DreamDrive/p/5571916.html