groovy grape grab 没有使用代理设置

groovy grape grab not using proxy settings

我 运行 Groovy v2.4.5 在防火墙后面,我有一个本地 cntlm 代理。 仅供参考,当我在开放网络上使用 grab 时,它有效。

我试过 运行 我的脚本是这样的:

groovy -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=3128 -Divy.message.logger.level=3 try_grape_grab.groovy

并在 JAVA_OPTS 中设置相同的属性,但 groovy 似乎没有使用它们,我只是看到下载挂起。

export JAVA_OPTS="-Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=3128"

如果我使用浏览器(带有代理设置),我可以访问 grab 试图下载的 pom,因此网络代理也不会阻止对这些文件的访问。

注意 - 我也对 grape 命令进行了同样的尝试,但没有成功。

有什么想法吗?

我认为您需要使用 @GrabConfig 来执行此操作。在你的 try_grape_grab.groovy:

里面
@Grapes([
  @Grab('some:thing:1.0'),
  @GrabConfig(systemProperties='httpProxy.host=127.0.0.1,httpProxy.port=3128')
])
...

andi 的评论是关键 - 我还需要代理 HTTPS(哦!)。一旦我将 运行 脚本更改为:

,它就起作用了

groovy -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=3128 -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=3128 -Divy.message.logger.level=3 try_grape_grab.groovy

谢谢安迪!