【问题标题】:Gradle HTTP connections to JCenter time outGradle HTTP 连接到 JCenter 超时
【发布时间】:2021-11-11 10:19:18
【问题描述】:

我有一个奇怪的 Gradle 构建错误,它无法连接到 JCenter。启用调试帮助我发现了错误和 URL。虽然我知道 JCenter 已被弃用,但有趣的是,当我使用 curl 时,这些 URL 可以正常工作...

编辑:curl 也有问题。见下文

$ ./gradlew bundleDebug --debug > full.output.txt
^[[Z2021-09-16T16:59:05.016+0500 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] 
2021-09-16T16:59:05.016+0500 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] FAILURE: Build failed with an exception.
2021-09-16T16:59:05.016+0500 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] 
2021-09-16T16:59:05.016+0500 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * What went wrong:
2021-09-16T16:59:05.016+0500 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Could not determine the dependencies of task ':app:compileDebugKotlin'.
2021-09-16T16:59:05.016+0500 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > Could not resolve all dependencies for configuration ':app:debugRuntimeClasspath'.
2021-09-16T16:59:05.016+0500 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]    > Could not determine artifacts for cn.aigestudio.wheelpicker:WheelPicker:1.1.3
2021-09-16T16:59:05.016+0500 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]       > Could not get resource 'https://jcenter.bintray.com/cn/aigestudio/wheelpicker/WheelPicker/1.1.3/WheelPicker-1.1.3.aar'.
2021-09-16T16:59:05.016+0500 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]          > Could not HEAD 'https://jcenter.bintray.com/cn/aigestudio/wheelpicker/WheelPicker/1.1.3/WheelPicker-1.1.3.aar'.
2021-09-16T16:59:05.017+0500 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]             > Read timed out
2021-09-16T16:59:05.017+0500 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] 
2021-09-16T16:59:05.017+0500 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Try:
2021-09-16T16:59:05.017+0500 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Run with --stacktrace option to get the stack trace.  Run with --scan to get full insights.
2021-09-16T16:59:05.017+0500 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] 
2021-09-16T16:59:05.017+0500 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Get more help at https://help.gradle.org
2021-09-16T16:59:05.017+0500 [ERROR] [org.gradle.internal.buildevents.BuildResultLogger] 
2021-09-16T16:59:05.017+0500 [ERROR] [org.gradle.internal.buildevents.BuildResultLogger] BUILD FAILED in 1m 35s

这是来自有关https://jcenter.bintray.com/com/kbeanie/multipicker/1.6/multipicker-1.6.aar 的调试输出的示例:

2021-09-16T16:38:42.552+0500 [DEBUG] [org.gradle.internal.resource.transport.http.HttpClientHelper] Performing HTTP HEAD: https://jcenter.bintray.com/com/kbeanie/multipicker/1.6/multipicker-1.6.aar
2021-09-16T16:38:42.553+0500 [DEBUG] [org.apache.http.client.protocol.RequestAddCookies] CookieSpec selected: default
2021-09-16T16:38:42.553+0500 [DEBUG] [org.apache.http.client.protocol.RequestAuthCache] Auth cache not set in the context
2021-09-16T16:38:42.554+0500 [DEBUG] [org.apache.http.impl.conn.PoolingHttpClientConnectionManager] Connection request: [route: {s}->https://jcenter.bintray.com:443][total kept alive: 0; route allocated: 0 of 20; total allocated: 0 of 20]
2021-09-16T16:38:42.554+0500 [DEBUG] [org.apache.http.impl.conn.PoolingHttpClientConnectionManager] Connection leased: [id: 6][route: {s}->https://jcenter.bintray.com:443][total kept alive: 0; route allocated: 1 of 20; total allocated: 1 of 20]
2021-09-16T16:38:42.554+0500 [DEBUG] [org.apache.http.impl.execchain.MainClientExec] Opening connection {s}->https://jcenter.bintray.com:443
2021-09-16T16:38:42.558+0500 [DEBUG] [org.apache.http.impl.conn.DefaultHttpClientConnectionOperator] Connecting to jcenter.bintray.com/34.95.74.180:443
2021-09-16T16:38:42.558+0500 [DEBUG] [org.apache.http.conn.ssl.SSLConnectionSocketFactory] Connecting socket to jcenter.bintray.com/34.95.74.180:443 with timeout 30000
2021-09-16T16:38:42.569+0500 [DEBUG] [org.apache.http.conn.ssl.SSLConnectionSocketFactory] Enabled protocols: [TLSv1.3, TLSv1.2]
2021-09-16T16:38:42.570+0500 [DEBUG] [org.apache.http.conn.ssl.SSLConnectionSocketFactory] Enabled cipher suites:[TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384, TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, TLS_DHE_DSS_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_DSS_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384, TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, TLS_DHE_DSS_WITH_AES_256_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_DSS_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_DSS_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_EMPTY_RENEGOTIATION_INFO_SCSV]
2021-09-16T16:38:42.570+0500 [DEBUG] [org.apache.http.conn.ssl.SSLConnectionSocketFactory] Starting handshake
2021-09-16T16:38:42.619+0500 [DEBUG] [org.apache.http.conn.ssl.SSLConnectionSocketFactory] Secure session established
2021-09-16T16:38:42.619+0500 [DEBUG] [org.apache.http.conn.ssl.SSLConnectionSocketFactory]  negotiated protocol: TLSv1.3
2021-09-16T16:38:42.619+0500 [DEBUG] [org.apache.http.conn.ssl.SSLConnectionSocketFactory]  negotiated cipher suite: TLS_AES_128_GCM_SHA256
2021-09-16T16:38:42.620+0500 [DEBUG] [org.apache.http.conn.ssl.SSLConnectionSocketFactory]  peer principal: CN=*.bintray.com
2021-09-16T16:38:42.620+0500 [DEBUG] [org.apache.http.conn.ssl.SSLConnectionSocketFactory]  peer alternative names: [*.bintray.com, bintray.com]
2021-09-16T16:38:42.627+0500 [DEBUG] [org.apache.http.conn.ssl.SSLConnectionSocketFactory]  issuer principal: CN=GeoTrust RSA CA 2018, OU=www.digicert.com, O=DigiCert Inc, C=US
2021-09-16T16:38:42.631+0500 [DEBUG] [org.apache.http.impl.conn.DefaultHttpClientConnectionOperator] Connection established 192.168.247.130:51996<->34.95.74.180:443
2021-09-16T16:38:42.631+0500 [DEBUG] [org.apache.http.impl.conn.DefaultManagedHttpClientConnection] http-outgoing-6: set socket timeout to 30000
2021-09-16T16:38:42.631+0500 [DEBUG] [org.apache.http.impl.execchain.MainClientExec] Executing request HEAD /com/kbeanie/multipicker/1.6/multipicker-1.6.aar HTTP/1.1
2021-09-16T16:38:42.631+0500 [DEBUG] [org.apache.http.impl.execchain.MainClientExec] Target auth state: UNCHALLENGED
2021-09-16T16:38:42.631+0500 [DEBUG] [org.apache.http.impl.execchain.MainClientExec] Proxy auth state: UNCHALLENGED
2021-09-16T16:38:43.923+0500 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2021-09-16T16:38:43.923+0500 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2021-09-16T16:38:43.923+0500 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
2021-09-16T16:38:43.923+0500 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2021-09-16T16:38:43.923+0500 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2021-09-16T16:38:43.923+0500 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
2021-09-16T16:38:53.923+0500 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2021-09-16T16:38:53.923+0500 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2021-09-16T16:38:53.923+0500 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
2021-09-16T16:38:53.924+0500 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2021-09-16T16:38:53.924+0500 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2021-09-16T16:38:53.924+0500 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
2021-09-16T16:39:03.922+0500 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2021-09-16T16:39:03.922+0500 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2021-09-16T16:39:03.922+0500 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
2021-09-16T16:39:03.923+0500 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2021-09-16T16:39:03.923+0500 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2021-09-16T16:39:03.923+0500 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
2021-09-16T16:39:12.663+0500 [DEBUG] [org.apache.http.impl.conn.DefaultManagedHttpClientConnection] http-outgoing-6: Close connection
2021-09-16T16:39:12.663+0500 [DEBUG] [org.apache.http.impl.conn.DefaultManagedHttpClientConnection] http-outgoing-6: Shutdown connection
2021-09-16T16:39:12.663+0500 [DEBUG] [org.apache.http.impl.execchain.MainClientExec] Connection discarded
2021-09-16T16:39:12.663+0500 [DEBUG] [org.apache.http.impl.conn.PoolingHttpClientConnectionManager] Connection released: [id: 6][route: {s}->https://jcenter.bintray.com:443][total kept alive: 0; route allocated: 0 of 20; total allocated: 0 of 20]
2021-09-16T16:39:12.664+0500 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationRunner] Completing Build operation 'Metadata of https://jcenter.bintray.com/com/kbeanie/multipicker/1.6/multipicker-1.6.aar'
2021-09-16T16:39:12.664+0500 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationRunner] Build operation 'Metadata of https://jcenter.bintray.com/com/kbeanie/multipicker/1.6/multipicker-1.6.aar' completed
2021-09-16T16:39:12.664+0500 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess] Error while accessing remote repository BintrayJCenter. Waiting 1000ms before next retry. 2 retries left
org.gradle.internal.resolve.ArtifactResolveException: Could not determine artifacts for com.kbeanie:multipicker:1.6

Full output in this gist.

使用 Curl 手动调试

# http 2 and HEAD works
$ curl -I https://jcenter.bintray.com/com/kbeanie/multipicker/1.6/multipicker-1.6.aar
HTTP/2 200 
date: Thu, 16 Sep 2021 11:39:35 GMT
content-type: application/octet-stream
content-length: 82777
last-modified: Fri, 16 Nov 2018 18:20:39 GMT
etag: 0f19f1f69c04e11cfd695a5ad67013d1a95fc42e
x-checksum-sha1: 0f19f1f69c04e11cfd695a5ad67013d1a95fc42e
x-checksum-sha256: a81c7821877bb241ed32676ef0759778b648de49b36b06689f4018686e56c258
x-checksum-md5: 86af21e9bd4b0e95c857e5255270f24a
content-disposition: attachment; filename="multipicker-1.6.aar"; filename*=UTF-8''multipicker-1.6.aar
accept-ranges: bytes
via: 1.1 google
age: 622
cache-control: public, max-age=2592000
alt-svc: clear

# http 1.1 and HEAD works
$ curl --http1.1 -I https://jcenter.bintray.com/com/kbeanie/multipicker/1.6/multipicker-1.6.aar
HTTP/1.1 200 OK
Date: Thu, 16 Sep 2021 11:39:35 GMT
Content-Type: application/octet-stream
Content-Length: 82777
Last-Modified: Fri, 16 Nov 2018 18:20:39 GMT
ETag: 0f19f1f69c04e11cfd695a5ad67013d1a95fc42e
X-Checksum-Sha1: 0f19f1f69c04e11cfd695a5ad67013d1a95fc42e
X-Checksum-Sha256: a81c7821877bb241ed32676ef0759778b648de49b36b06689f4018686e56c258
X-Checksum-Md5: 86af21e9bd4b0e95c857e5255270f24a
Content-Disposition: attachment; filename="multipicker-1.6.aar"; filename*=UTF-8''multipicker-1.6.aar
Accept-Ranges: bytes
Via: 1.1 google
Age: 645
Cache-Control: public, max-age=2592000
Alt-Svc: clear

Gradle Wrapper 输出

$ ./gradlew --version

------------------------------------------------------------
Gradle 6.7.1
------------------------------------------------------------

Build time:   2020-11-16 17:09:24 UTC
Revision:     2972ff02f3210d2ceed2f1ea880f026acfbab5c0

Kotlin:       1.3.72
Groovy:       2.5.12
Ant:          Apache Ant(TM) version 1.10.8 compiled on May 10 2020
JVM:          11.0.12 (Oracle Corporation 11.0.12+7)
OS:           Linux 5.11.0-31-generic amd64

编辑

curl 不总是回复

似乎https://status.gradle.com 上关于 JCenter 不稳定和缓慢的状态可能是罪魁祸首,因为现在curl 也有问题:

$ time curl -v https://jcenter.bintray.com/com/haibin/calendarview/3.6.7/calendarview-3.6.7.aar
*   Trying 34.95.74.180:443...
* Connected to jcenter.bintray.com (34.95.74.180) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
*  subject: CN=*.bintray.com
*  start date: Sep 26 00:00:00 2019 GMT
*  expire date: Nov  9 12:00:00 2021 GMT
*  subjectAltName: host "jcenter.bintray.com" matched cert's "*.bintray.com"
*  issuer: C=US; O=DigiCert Inc; OU=www.digicert.com; CN=GeoTrust RSA CA 2018
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x55bd2aa51580)
> GET /com/haibin/calendarview/3.6.7/calendarview-3.6.7.aar HTTP/2
> Host: jcenter.bintray.com
> user-agent: curl/7.74.0
> accept: */*
> 
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
* Connection state changed (MAX_CONCURRENT_STREAMS == 100)!
< HTTP/2 502 
< content-type: text/html; charset=UTF-8
< referrer-policy: no-referrer
< content-length: 332
< date: Thu, 16 Sep 2021 13:13:07 GMT
< alt-svc: clear
< 

<html><head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>502 Server Error</title>
</head>
<body text=#000000 bgcolor=#ffffff>
<h1>Error: Server Error</h1>
<h2>The server encountered a temporary error and could not complete your request.<p>Please try again in 30 seconds.</h2>
<h2></h2>
</body></html>
* Connection #0 to host jcenter.bintray.com left intact

real    0m9,222s
user    0m0,019s
sys 0m0,000s

【问题讨论】:

    标签: java android gradle


    【解决方案1】:

    这可以解释一些事情:

    我没有信心,因为使用curl 仍然可以在 HTTP 级别上工作,但我会等待它。如果明天还是这样,那就不是这样了。

    编辑:是

    实际上只是 JCenter 表现得好笑。

    BUILD SUCCESSFUL in 2m 1s
    

    【讨论】:

      猜你喜欢
      • 2018-04-18
      • 1970-01-01
      • 2014-03-11
      • 1970-01-01
      • 1970-01-01
      • 2011-06-02
      • 2020-11-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多