HttpBuildCache

API 文档HttpBuildCache

HTTP 构建缓存的配置对象。缓存条目通过 GET 请求加载,通过 PUT 请求存储。

成功的 GET 请求必须返回状态码为 200(缓存命中)或 404(缓存未命中)的响应,其中缓存命中响应应包含缓存条目作为响应正文。成功的 PUT 请求必须返回任何 2xx 响应。

PUT 请求也可能返回 413 Payload Too Large 响应,表示负载大于可接受的大小。当启用 HttpBuildCache.isUseExpectContinue() 时,这会很有用。

重定向响应可能以 301, 302, 303, 307 或 308 响应发出。指向 PUT 请求的重定向响应必须使用 307 或 308 才能重新发送 PUT 请求。否则,重定向将跟随一个 GET 请求。

任何其他类型的响应都将被视为错误,导致远程缓存在此次构建的剩余时间内被禁用。

配置凭据时(参见 HttpBuildCache.getCredentials()),它们将使用 HTTP Basic Auth 发送。

在建立 TCP 连接后,请求传输过程中失败的请求将自动重试。这包括连接断开、读写超时以及连接重置等底层网络故障。

属性

属性描述
allowInsecureProtocol

指定是否允许通过不安全的 HTTP 连接与构建缓存通信。

allowUntrustedServer

指定是否允许使用不受信任的 SSL 证书与 HTTP 构建缓存后端通信。

enabled

构建缓存是否启用。

push

给定构建是否可以将输出存储在构建缓存中。

url

缓存的 URI。

useExpectContinue

指定是否应将 HTTP expect-continue 用于存储请求。此值默认为 false。启用后,在尝试发送请求之前会先与服务器检查存储请求是否会成功。这在处理可能因 413 Payload Too Large 响应而被服务器拒绝的大型 artifact 时特别有用,因为它避免了仅仅为了被拒绝而传输大文件的开销。这种快速失败行为会带来额外的少量开销,因为成功的请求需要额外的网络通信进行初始检查。注意:并非所有 HTTP 服务器都支持 expect-continue。

方法

方法描述
credentials(configuration)

配置用于访问 HTTP 缓存后端的凭据。

脚本块

无脚本块

属性详情

boolean allowInsecureProtocol

指定是否允许通过不安全的 HTTP 连接与构建缓存通信。

出于安全考虑,这有意要求用户逐个案例地选择允许使用不安全协议。

Gradle 有意不提供一个允许全局禁用此检查的系统/gradle 属性。

允许通过不安全协议进行通信使得中间人能够冒充目标服务器,并使攻击者能够 向系统提供恶意可执行代码。

另请参阅:Want to take over the Java ecosystem? All you need is a MITM!

boolean allowUntrustedServer

指定是否允许使用不受信任的 SSL 证书与 HTTP 构建缓存后端通信。

HTTP 构建缓存后端的 SSL 证书可能不受信任,因为它是内部提供的或自签名证书。

在这种情况下,您可以配置构建 JVM 环境以信任该证书,或者将此属性设置为 true 以禁用对服务器身份的验证。

允许与不受信任的服务器通信可以在传输过程中保持数据加密,但使得中间人更容易冒充目标服务器并捕获数据。

如果使用 HTTP 协议指定服务器(即禁用了 SSL),则此值无效。

boolean enabled

构建缓存是否启用。

boolean push

给定构建是否可以将输出存储在构建缓存中。

URI url

缓存的 URI。

boolean useExpectContinue

指定是否应将 HTTP expect-continue 用于存储请求。此值默认为 false。启用后,在尝试发送请求之前会先与服务器检查存储请求是否会成功。这在处理可能因 413 Payload Too Large 响应而被服务器拒绝的大型 artifact 时特别有用,因为它避免了仅仅为了被拒绝而传输大文件的开销。这种快速失败行为会带来额外的少量开销,因为成功的请求需要额外的网络通信进行初始检查。注意:并非所有 HTTP 服务器都支持 expect-continue。

方法详情

void credentials(Action<? super HttpBuildCacheCredentials> configuration)

配置用于访问 HTTP 缓存后端的凭据。