首页 > 解决方案 > 在代理后面的 gitlab-ci 管道中运行 gradlew

问题描述

我们正在使用 gitlab-ci 管道将我们的遗留 gradle/grails 应用程序迁移到云环境中。在代理后面的管道过程中调用 gradle 命令时遇到问题。我不能 100% 确定我的诊断是否正确,所以甚至可能没有提出正确的问题。

您如何配置 gradlew 以在代理后面的 gitlab 管道中下载 gradle?

我的项目gradle.properties在项目根目录中包含一个带有代理信息的文件:

systemProp.https.proxyHost=my.proxy.url.com
systemProp.https.proxyPort=80
systemProp.http.proxyHost=my.proxy.url.com
systemProp.http.proxyPort=80

我也将它复制到gradle-wrapper.properties无济于事。在本地构建我的项目时,它可以正确下载依赖项,但是当推送到 gitlab 时,.gitlab-ci.yml相关部分是:

build:
  stage: build
  script:
    - ./gradlew properties

只是试图打印包装器的属性,构建期间的输出是:

$ ./gradlew properties
Downloading https://services.gradle.org/distributions/gradle-5.2.1-bin.zip
Exception in thread "main" java.net.ConnectException: Connection timed out (Connection timed out)

正如我所说...我什至不确定我是否已正确诊断或提出正确的问题,因此也将不胜感激任何其他建议。

标签: gradlegitlab-cigradlew

解决方案


我认为这是您的 gitlab runner 的网络配置问题。通过 ssh 登录到 gitlab runner 机器并检查是否my.proxy.url.com可以访问。如果它在您本地构建时有效,则 gradle 配置可能没问题。


推荐阅读