背景:公司不允许直接访问外部网络,需要经过代理验证(比如在安全限制上设置了白名单网站),这时,maven需要通过配置http代理访问中央仓库(repo1.maven.org)
工作环境:
操作系统:mac os x
maven版本:3.3.9
步骤:
1、确认是否可以直接访问公共的maven中央仓库
直接ping repo1.maven.org:
如果不能ping通,说明无法访问,进如下一步
如果可以ping通,则无需做任何配置可以直接访问maven中央仓库
2、编辑/Users/username/.m2/settings.xml(如果没有该文件,复制$M2_HOME/conf/settings.xml,且.m2目录是隐藏目录,需要设置可见),添加代理配置
配置示例:
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- 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>
<id>workProxy</id>
<active>true</active>
<protocol>http</protocol>
<username>admin</username>
<password>admin</password>
<host>172.17.13.12</host>
<port>8088</port>
<nonProxyHosts>local.net|some.host.com</nonProxyHosts>
</proxy>
</proxies>
</settings>
id:可选,可以配置多个代理节点(proxy)
active:true/false,true的话说明该代理配置激活使用
protocol:http,代理的协议,这里就是http
username:用户名,代理需要账号校验时填写,否则注释掉
password:密码,代理需要账号校验时填写,否则注释掉
host:代理ip
port:代理端口
nonProxyHosts:无需经过代理访问的网站,多个的话通过|隔开