如何在命令行中使用带有 gradle 的袜子来解决依赖关系?

Posted

技术标签:

【中文标题】如何在命令行中使用带有 gradle 的袜子来解决依赖关系?【英文标题】:How to use socks with gradle for dependency resolving, in command line? 【发布时间】:2016-04-19 06:31:23 【问题描述】:

当没有代理服务器无法访问 jcenter 来解决依赖关系,并且我想使用 socks 而不是 http 代理时,我如何在命令行中使用它? 我知道如何使用http代理:

-Dhttp.proxyHost=yourProxy -Dhttp.proxyPort=yourPort  
-Dhttp.proxyUser=usernameProxy -Dhttp.proxyPassword=yourPassoword

【问题讨论】:

您可以在 gradle.properties 配置文件中设置代理。只需添加这两行:systemProp.socks.proxyHost=127.0.0.1 systemProp.socks.proxyPort=1080 在我从文件菜单中选择Invalidate Caches / Restart 后,它对我有用。 (android Studio 3.5) 简单的关闭和重新打开 android studio 不起作用。 【参考方案1】:

我找到了答案,你可以在这里使用:

./gradlew -DsocksProxyHost=yourHost 
-DsocksProxyPort=yourHostPort your-command

使用上面你可以设置socks主机和端口。

【讨论】:

如何设置socks密码?【参考方案2】:

Gradle 仅记录有关 how to use HTTP(s) proxy 的文档,但在它提到的 ant source code 中,有足够的信息来说明如何设置 SOCKS 代理。

将以下两行添加到 gradle.properties 配置文件中就完成了。

systemProp.socksProxyHost=your socks proxy ip
systemProp.socksProxyPort=your socks proxy port

SOCKS 配置名称(socksProxyHost 和 socksProxyPort)的格式不同于 HTTP 代理主机和端口配置(http.proxyHost 和 http.proxyPort)。

【讨论】:

【参考方案3】:

参考https://discuss.gradle.org/t/how-can-i-set-gradle-proxy-to-socks/15508 在“项目”窗口中,将范围从 Android 更改为 Project。 然后打开gradle.properties并添加这一行:

org.gradle.jvmargs=-DsocksProxyHost=yourHostIP -DsocksProxyPort=yourHostPort

Sync 项目。

【讨论】:

【参考方案4】:

我可能有点晚了,但我发现在 ubuntu/Linux 中,代理设置缓存在 ~/.gradle/gradle.properties 中,我还发现这个 gradle.properties 与您在 android studio 中的应用。 所以你需要在那里编辑凭据。

执行vim ~/.gradle/gradle.properties 并在那里编辑凭据。 就我而言,我使用的是 socks 代理,所以我注释掉了所有 http 和 https 代理主机和端口,并为 socks 添加了一个。它看起来像这样

`systemProp.socks5ProxyHost=127.0.0.1

systemProp.socks5ProxyPort=1080`

之后我能够同步 gradle。

【讨论】:

以上是关于如何在命令行中使用带有 gradle 的袜子来解决依赖关系?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用命令行输入来选择要在 gradle 构建中使用的属性文件?

如何使用 Gradle + Spring boot 运行多个配置文件? [复制]

如何在命令行中使用带有 cut 的正则表达式?

Gradle 4.0 不在命令行中显示已执行的任务

如何使用 Python 3.x 在命令行中执行多个命令

带有 kotlin 设置问题的 Spring Boot gradle 项目