Gradle HTTP 超时设置

Posted AlphaHinex

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gradle HTTP 超时设置相关的知识,希望对你有一定的参考价值。

在使用 Nexus 时,很罕见的遇到了超时问题:

> Unable to load Maven meta-data from http://localhost:8081/repository/test/io/github/alphahinex/example/0.1.2-SNAPSHOT/maven-metadata.xml. > Could not HEAD 'http://localhost:8081/repository/test/io/github/alphahinex/example/0.1.2-SNAPSHOT/maven-metadata.xml'. > Read timed out

经确认,http://localhost:8081/repository/test/io/github/alphahinex/example/0.1.2-SNAPSHOT/maven-metadata.xml 是可以得到正确的响应的,但是响应时间比较长。

类似问题,在使用 中提到的,需要 JitPack 先进行构建才能下载的依赖时,也可能会遇到。

增加超时时间就可以解决这个问题了,但现在 Gradle 的 文档 实在有点无力吐槽,啥也找不着。

下面就是缺失的 ——

Gradle HTTP 超时设置文档

以 Gradle v6.0.1 为例:

超时属性及默认超时时间在 JavaSystemPropertiesHttpTimeoutSettings.java#L26-L29 中:

public static final String CONNECTION_TIMEOUT_SYSTEM_PROPERTY = "org.gradle.internal.http.connectionTimeout";public static final String SOCKET_TIMEOUT_SYSTEM_PROPERTY = "org.gradle.internal.http.socketTimeout";public static final int DEFAULT_CONNECTION_TIMEOUT = 30000;public static final int DEFAULT_SOCKET_TIMEOUT = 30000;

设置方式为:

命令行

$ ./gradlew build -Dorg.gradle.internal.http.socketTimeout=200000 -Dorg.gradle.internal.http.connectionTimeout=200000

配置文件

可在 gradle.properties 文件中,通过如下属性进行配置:

systemProp.org.gradle.internal.http.socketTimeout=200000
systemProp.org.gradle.internal.http.connectionTimeout=200000

参考资料

  • Increase timeout for gradle to get a maven dependency

  • #3041 Introduce HTTP timeout

  • #3371 Increase timeout for HTTP timeouts and assign system properties to internal namespace

以上是关于Gradle HTTP 超时设置的主要内容,如果未能解决你的问题,请参考以下文章

修复Gradle因代理设置导致的超时问题

修复Gradle因代理设置导致的超时问题

错误:连接超时:连接

如何为 gradle 发布任务设置超时?

片段内部静态类和gradle问题

测试片段不执行定时器或示例超时