天天看點

Maven實戰. 2.4設定HTTP代理

<b>2.4設定http代理</b>

有時候你所在的公司基于安全因素考慮,要求你使用通過安全認證的代理通路網際網路。這種情況下,就需要為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)。添加代理配置如下:

&lt;settings&gt;

… 

&lt;proxies&gt;

&lt;proxy&gt;

&lt;id&gt;myproxy&lt;/id&gt;

&lt;active&gt;true&lt;/active&gt;

&lt;protocol&gt;http&lt;/protocol&gt;

&lt;host&gt;218.14.227.197&lt;/host&gt;

&lt;port&gt;3128&lt;/port&gt;

&lt;!--

&lt;username&gt;***&lt;/username&gt;

&lt;password&gt;***&lt;/password&gt;

&lt;nonproxyhosts&gt;repository.mycom.com|*.google.com&lt;/nonproxyhosts&gt;

--&gt;

&lt;/proxy&gt;

&lt;/proxies&gt;

&lt;/settings&gt;這段配置十分簡單,proxies下可以有多個proxy元素,如果聲明了多個proxy元素,則預設情況下第一個被激活的proxy會生效。這裡聲明了一個id為myproxy的代理,active的值為true表示激活該代理,protocol表示使用的代理協定,這裡是http。當然,最重要的是指定正确的主機名(host元素)和端口(port元素)。上述xml配置中注釋掉了username、password、nonproxyhost幾個元素。當代理服務需要認證時,就需要配置username和password。nonproxyhost元素用來指定哪些主機名不需要代理,可以使用“|”符号來分隔多個主機名。此外,該配置也支援通配符,如*.google.com表示所有以google.com結尾的域名通路都不要通過代理。