maven3實戰之設置HTTP代理安全
----------服務器
有時候你所在的公司基於安全因素考慮,要求你使用經過安全認證的代理訪問因特網。這種狀況下,就須要爲Maven配置HTTP代理,才能讓它正常訪問外部倉庫,如下載所須要的資源。首先確認本身沒法直接訪問公共的maven中央倉庫,直接運行命令ping repo1.maven.org能夠檢查網絡。若是真的須要代理,先檢查一下代理服務器是否暢通。好比如今有一個IP地址爲218.14.227.197,端口爲3128的代理服務,咱們能夠運行telnet 218.14.227.197 3128來檢測該地址的該端口是否暢通。若是獲得出錯信息,須要先獲取正確的代理服務信息,若是telnet鏈接正確,則輸入ctrl+],而後q,回車,退出便可。網絡
檢查完畢以後,編輯~/.m2/settings.xml文件(若是沒有該文件,則複製$M2_HOME/conf/settings.xml)。添加代理配置以下:maven
<settings> google
... 代理
<proxies> xml
<proxy> 資源
<id>my-proxy</id> 域名
<active>true</active> it
<protocol>http</protocol>
<host>218.14.227.197</host>
<port>3128</port>
<!--
<username>***</username>
<password>***</password>
<nonProxyHosts>
repository.mycom.com|*.google.com
</nonProxyHosts>
-->
</proxy>
</proxies>
...
</settings>
這段配置十分簡單,proxies下能夠有多個proxy元素,若是聲明瞭多個proxy元素,則默認狀況下第一個被激活的proxy會生效。這裏聲明瞭一個id爲my-proxy的代理,active的值爲true表示激活該代理,protocol表示使用的代理協議,這裏是http。固然,最重要的是指定正確的主機名(host元素)和端口(port元素)。上述xml配置中註釋掉了username,password,nonProxyHosts幾個元素。當代理服務須要認證時,就須要配置username和password。nonProxyHost元素用來指定哪些主機不須要代理,可使用"|"符號來分隔多個主機名。此外,該配置也支持通配符,如:*.google.com表示全部以google.com結尾的域名訪問都不要經過代理。