Gradle 尝试下载依赖项时出现 503 Service Unavailable

问题描述 投票:0回答:1

我的 gradle 项目使用内部公司工件注册表和

mavenCentral()
。 我需要让它在新计算机上工作,Gradle 从 7.3 升级到 8 版本,并遵循严格的公司政策,互联网连接通过公司互联网代理。

曾经在旧配置上运行的 gradle 构建突然停止运行并出现错误:

Execution failed for task ':app:generateJavaClasses'.
> Could not resolve all files for configuration ':app:jaxb'.
   > Could not resolve org.glassfish.jaxb:jaxb-core:2.3.0.1.
     Required by:
         project :app
      > Repository GitLab is disabled due to earlier error below:
         > Could not resolve org.glassfish.jaxb:jaxb-xjc:4.0.5.
            > Could not get resource 'https://our-registry.our-company/api/v4/projects/21/packages/maven/org/glassfish/jaxb/jaxb-xjc/4.0.5/jaxb-xjc-4.0.5.pom'.
               > Could not GET 'https://our-registry.our-company/api/v4/projects/21/packages/maven/org/glassfish/jaxb/jaxb-xjc/4.0.5/jaxb-xjc-4.0.5.pom'. Received status code 503 from server: Service Unavailable

our-registry
的目的是提供我们的工件。它实际上不包含 JAXB 工件。注册表有意位于
mavenCentral()
之前。对于我们的注册表找不到 JAXB 工件,我并不感到惊讶,但我希望它在出现错误时转移到下一个存储库 (
mavenCentral
)。

相反,它会失败并出现 HTTP 503 错误。存储库工作正常(经维护工程师确认)。这是怎么回事?

gradle gitlab dependency-management http-proxy
1个回答
0
投票

问题是互联网代理设置错误。 我在

systemProp.http.proxyHost=internet-proxy.our-company
中设置了系统变量
.gradle.properties
但忘记设置变量
systemProp.http.nonProxyHosts
。由于
our-registry.our-company
是一个 Intranet 站点,因此必须将其排除在 Internet 代理之外。代理在尝试访问 Intranet 站点时返回 503 错误,503 不是来自注册表。

使用出现

gradle --debug
2024-09-06T15:14:46.317+0200 [DEBUG] [org.apache.http.impl.execchain.MainClientExec] CONNECT refused by proxy: HTTP/1.1 503 Service Unavailable
选项很容易发现问题。

还值得注意的是,期望在 503 错误时回退到下一个存储库违反了构建可重复性的 gradle 理念。 这里有更详细的解释。

© www.soinside.com 2019 - 2024. All rights reserved.