Gradle 代理配置

我需要通过代理服务器从 Gradle 进行 Web 访问,才能使用 Jenkins 的 Gradle/Artifactory 集成。为了减少问题的可能原因,我在build.gradle中手动添加了 Artifactory插件,并从命令行运行它:

apply {
    apply from: "http://gradle.artifactoryonline.com/gradle/plugins/org/jfrog/buildinfo/build-info-extractor-gradle/1.0.1/artifactoryplugin-1.0.1.gradle"
}

按照说明,我在主目录中的 .gradle/gradle.properties 中指定了以下内容:

systemProp.http.proxyHost=hostname
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=de\\username
systemProp.http.proxyPassword=xxx

使用上述代理配置(否则已知可以正常工作),它将失败:

11:33:17.699 [ERROR] [org.gradle.BuildExceptionReporter] 由以下原因引起:java.io.IOException:服务器返回 HTTP 响应代码:URL:http://gradle.artifactoryonline.com/gradle/plugins/org/jfrog/buildinfo/build-info-extractor-gradle/1.0.1/artifactoryplugin-1.0.1.gradle

我有两个代理服务器可供选择,一个总是响应(需要代理身份验证),另一个响应(网关错误),所以显然,使用proxyHost和prservicPort选项。407502

由于用户名(基于 Active Directory 用户)包含反斜杠,因此我尝试了 和 ,但都不起作用。指定的用户与登录到计算机和 Active Directory 的用户不同。此用户的凭据对代理无效,因此我需要能够指定其他用户。\\\

在 Jenkins 或 Artifactory 的 GUI 中设置相同的选项是有效的。


答案 1

对丹尼尔的回应的改进:

仅 HTTP 代理配置

gradlew -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=3128 "-Dhttp.nonProxyHosts=*.nonproxyrepos.com|localhost"

仅 HTTPS 代理配置

gradlew -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=3129 "-Dhttp.nonProxyHosts=*.nonproxyrepos.com|localhost"

HTTP 和 HTTPS 代理配置

gradlew -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=3128 -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=3129 "-Dhttp.nonProxyHosts=*.nonproxyrepos.com|localhost"

使用用户和密码进行代理配置

gradlew -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=3128 - Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=3129 -Dhttps.proxyUser=user -Dhttps.proxyPassword=pass -Dhttp.proxyUser=user -Dhttp.proxyPassword=pass -Dhttp.nonProxyHosts=host1.com|host2.com

为我工作(在homedir或project dir中,构建仍然失败)。感谢您将问题指向提供此解决方法的 gradle。请参阅 https://docs.gradle.org/current/userguide/build_environment.html#sec:accessing_the_web_via_a_proxy 中的参考文档gradle.properties

更新您还可以将这些属性放入 (请参阅:https://stackoverflow.com/a/50492027/474034)。gradle-wrapper.properties


答案 2

这是我的 gradle.properties,请注意那些 HTTPS 部分

systemProp.http.proxyHost=127.0.0.1
systemProp.http.proxyPort=8118
systemProp.https.proxyHost=127.0.0.1
systemProp.https.proxyPort=8118

推荐