使用 Ant 的 get 任务通过代理下载
在 Ant 下载文件之前设置代理,并为中间服务器和下载服务器分别提供凭据。
Ant 的 get 任务使用运行 Ant 的 JVM 的网络配置。可以在下载前通过 setproxy 设置代理:
<target name="download">
<setproxy proxyhost="proxy.example.net"
proxyport="8080"
nonproxyhosts="localhost|127.*|*.internal.example.net"/>
<get src="https://downloads.example.net/tool.zip"
dest="tool.zip"/>
</target>名称和端口只是示例。对于获准使用公共代理的公共构件请求,请从 HTTP 代理列表中选取一个 HTTP 端点。旁路列表使用竖线分隔,而不是逗号。只应包含确实需要直连的目标;即使代理工作正常,将内部下载经外部代理转发也可能失败。
顺序很重要。请把代理任务放在 get 操作之前,无论它在同一个 target 中还是在作为前置条件的 target 中。下载开始后再配置无法改变该连接。
可能有两种登录。proxyuser 和 proxypassword 属性针对 setproxy 的中间服务器。username 和 password 属性针对 get 的下载服务器。把代理账号传给 get 并不会使其变成代理认证。认证支持和限制还取决于 JDK 以及代理要求的机制。
该设置只在 JVM 范围内生效。它适用于使用该网络路径的 Ant 任务,但不会配置构建启动的每一个外部程序。它还可能影响同一 Ant 进程中的后续网络任务。请把站点专用的端点和机密保存在构建的本地配置中,而不要把某位开发者的账号嵌入共享的 target。
如果操作系统已经提供所需路由,Ant 还记录了 -autoproxy,用于在受支持的 Java 运行时上进行操作系统发现。这是路由配置的另一种来源。对于需要显式端点的构建,上面的任务让所选路由及其时机变得可见。