Gangmax Blog

解决maven2网络代理的问题

我最近总是遇到这个问题:当我处于在公司网络环境中时,我的机器需要设置代理服务器上网。我的做法是在Ubuntu的“系统->首选项->网络代理”设置好,这样,在命令行中运行的需要网络的程序就都可以顺利连接了。但是maven(我使用的是version 2.2.1)是个例外:当build一个工程所需要的artifacts要从remote repositories下载时,总是报”connection time out”错误。百思不得其解。

今天我尝试这样解决问题:首先在maven命令行参数中加入“-Dhttp.proxyHost=proxyhostURL -Dhttp.proxyPort=proxyPortNumber”参数,得到同样的错误。通过google找到”http://maven.apache.org/guides/mini/guide-proxies.html",里面告诉我们要想给maven设置代理,需要在"settings.xml"里面设置。按照该文的方法,设置好之后,build顺利通过。

这个问题比较令人疑惑的地方是,如果没有在settings.xml中设置代理的话,则maven也不会从java命令行参数或者环境变量中取得代理设置,这是比较违反直觉的。因为毕竟环境已经设置了代理,而maven却不用。

Comments