如何在命令行中使用带有 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 构建中使用的属性文件?