在特殊的网络策略环境下(公司局域网,个人网络不需要设置代理服务器的),可能要需要开发人员通过代理服务器来访问互联网。此时就需要给Maven配置代理服务来访问仓库、更新相关资源。
打开setting.xml文件
------------------------------------------------------------------------------------------------------------
<proxies>
<proxy>
<id>myProxy-opp</id>
<active>true</active>
<protocol>http</protocol>
<host>10.10.0.77</host>
<port>8080</port>
<username>XXXXX</username>
<password>XXXXX</password>
<nonProxyHosts>*.XXX.com|XXX.org</nonProxyHosts>
</proxy>
------------------------------------------------------------------------------------------
在<settings>标签中添加如上代码,说明如下:
1、proxies中可以配置多个proxy,但是默认第一个proxy生效。
2、id的值可以随意定义,没有强制性的;active中的TRUE表示该代理目前生效状态。
3、http协议、主机地址、端口不在赘述。
4、用户名密码按需配置即可,用户名和密码可以不填写的。
5、nonProxyHost表示不需要代理访问的地址。中间的竖线分隔多个地址,此处可以使用星号作为通配符号。
--------------------- --------------------------------------------------------------------
如果配置代理服务器还是无法从远程仓库下载,并报如下错误:
网络连接有问题,看来应该设置代理,直接修改conf/setting.xml, 把代理加上去.
运行,咦,又出错了, 错误信息是(注意黑斜体):
[WARNING] Failure to transfer org.codehaus.mojo/maven-metadata.xml from http://mirrors.163.com/maven/repository/maven-public/ was cached
in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates
are forced. Original error: Could not transfer metadata org.codehaus.mojo/maven-metadata.xml from/to central (http://mirrors.163.com/maven/repository/maven-public/): Not authorized by proxy , ReasonPhrase:Proxy Authentication Required.
org.eclipse.aether.transfer.MetadataTransferException: Failure to transfer org.codehaus.mojo/maven-metadata.xml from http://mirrors.163.com/maven/repository/maven-public/was cached in the local repository, resolution will not be reattempted until the updat
e interval of central has elapsed or updates are forced. Original error: Could not transfer metadata org.codehaus.mojo/m
aven-metadata.xml from/to central (http://mirrors.163.com/maven/repository/maven-public/): Not authorized by proxy , ReasonPhrase:Proxy Authentication Required.
这如何是好,明明不需要密码的, 谷歌一把, 如果是NTLM proxy(搞不清楚这个代理类型,可能是微软的东东吧),需要添加一个附加包,如下:
Download the wagon-http-lightweight-2.2.jar , copy到lib\ext目录下, 问题解决!