原文地址:https://alphahinex.github.io/2020/06/19/gradle-http-timeout-settings/
description: "The Missing Guide"
date: 2020.06.19 19:34
categories:
- Java
tags: [Java, Gradle]
keywords: Java, Gradle, timeout, Maven, dependency
在使用 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
經(jīng)確認,http://localhost:8081/repository/test/io/github/alphahinex/example/0.1.2-SNAPSHOT/maven-metadata.xml 是可以得到正確的響應的曙旭,但是響應時間比較長。
類似問題咐低,在使用 JitPack 真香 中提到的,需要 JitPack 先進行構建才能下載的依賴時袜腥,也可能會遇到。
增加超時時間就可以解決這個問題了钉汗,但現(xiàn)在 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