前言
持续更新中…
setting.xml文件
1.<localRepository>
自定义本地Maven仓库目录地址。
这样本地的仓库地址就是配置的目录了。
2.<proxies>
基于安全因素考虑,使用通过安全认证的代理访问因特网,这时候需要为Maven配置HTTP代理,才能正常访问外部仓库。
<proxies>下可以有多个<proxy>元素,默认第一个被激活(active属性为true的那个)的生效。
<!-- proxies
| This is a list of proxies which can be used on this machine to connect to the network.
| Unless otherwise specified (by system property or command-line switch), the first proxy
| specification in this list marked as active will be used.
|-->
<proxies>
<!-- proxy
| Specification for one proxy, to be used in connecting to the network.
|
<proxy>
<id>optional</id>
<active>true</active>
<protocol>http</protocol>
<username>proxyuser</username>
<password>proxypass</password>
<host>proxy.host.net</host>
<port>80</port>
<nonProxyHosts>local.net|some.host.com</nonProxyHosts>
</proxy>
-->
</proxies>
3.<servers>
有时候在pom文件中配置了远程仓库,但是这个仓库的访问(下载或上传)还需要用户名和密码,此时就需要在setting文件中配置认证信息。(为什么不在pom文件配置?因为pom文件是提交到仓库中供所有人查看的,而setting文件只在本机)。
如上图,配置了一个id为my-proj的仓库的认证信息,这是关键元素,必须和pom文件中远程仓库配置的<repository>中的<id>完全一致对应。
4.<mirrors>
配置镜像。配置镜像往往可以提供比中央仓库更快的服务。
<mirror>
<id>aliyunmaven</id>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
<!-- <mirrorOf>central</mirrorOf> -->
<mirrorOf>*</mirrorOf>
</mirror>
如上,<mirrorOf>的值是*,表示该配置是所有远程仓库的镜像,任何远程仓库的请求都会转移至该镜像(包括私服的访问,私服也是远程仓库的一种)。
再看注释掉的<mirrorOf>central</mirrorOf>,如果放开,意味着此镜像仅仅是中央仓库的镜像,所有对中央仓库的访问才会转移至该镜像。
也可以配置多个远程仓库镜像的代理,<mirrorOf>repo1,repo2</mirrorOf>,逗号分隔即可。
<mirrorOf>*,!repo1</mirrorOf>,代理所有的远程仓库,repo1排除外。
<mirror>中的id,name和url标签,与POM中对一般仓库的配置形同,表示该镜像仓库的唯一标识,名称和地址,类似的,如果此镜像需要认证,可以基于id进行认证配置(<server>)
注意:因为镜像仓库完全代理了远程仓库,如果镜像仓库出现问题无法使用,依然不能去访问被代理的远程仓库。