Ant 设置代理服务器(Windows和Linux)

来源:互联网 发布:去哪里买淘宝店铺 编辑:程序博客网 时间:2024/06/06 00:29

Ant

由于一项作业的需求,需要编译Nutch,Nutch使用Ant进行项目管理,其中又用到了ivy来分析和下载项目的jar包依赖。但是众所周知的而原因,官方仓库根本无法使用,替换了几个官方推荐镜像也没有作用。找了下国内的镜像,也没有找到合适的。 所幸,我一直有使用GoAgent,所以想着通过代理下载依赖。

Windows设置方法

GoAgent的代理地址是本机 127.0.0.1端口为 8087,本方法同样适用于其他代理服务器 
在%ANT_HOME%\bin\ant.bat文件最前方添加如下代码:

set ANT_OPTS=-Dhttp.proxyHost=代理服务器地址(127.0.0.1) -Dhttp.proxyPort=代理服务器端口(8087
  • 1

ant是有java编写,代码作用就是在启动java虚拟机时,传入两个参数,来时java虚拟机进程按照设定的代理访问互联网。

如果你的代理服务器需要用户密码验证,则需要如下设置,多出两个参数

set ANT_OPTS=-Dhttp.proxyHost=代理服务器地址-Dhttp.proxyPort=代理服务器端口 -Dhttp.proxyUserName=用户名 -Dhttp.proxyPassword=密码
  • 1
  • 2

我通过免费的GoAgent来加载依赖最终编译用时

BUILD SUCCESSFULTotal time: 41 minutes 35 seconds
  • 1
  • 2

还能忍受,如果使用付费或者更加稳定的VPN的话应该效果应该可以。


Linux设置方法

修改bin目录下ant脚本文件:

export ANT_OPTS="-Dhttp.proxyHost=host -Dhttp.proxyPort=port -Dhttp.proxyUserName=username -Dhttp.proxyPassword=password"  //其中username、password、host、port用具体值替换。当然如果密码有不规则字符要小心,该转义的要转义。//如果是需要用到https代理的话,需要将上面的-Dhttp改为-Dhttps即可

通用设置

修改ant脚本文件的方法很适用于windows,类似的方法在Linux上可能无效,包括在.bashrc等文件上加入环境变量,试图修改ant脚本,但有可能都没有起到好的效果。最终查看ant官方文档找到一劳永逸的办法。
原来这么简单,还是要多看文档啊。。。文档Setproxy Task 
简述就是可以在build.xml文件中加入如下属性: 
<setproxy proxyhost="${proxy.host}" 
proxyport="${proxy.port}" 
nonproxyhosts="xyz.svn.com"/>

其中proxyhost为代理地址,proxport为端口,nonproxyhosts一般可以不用,这个属性可以设置白名单,是某些域名不走代理