【发布时间】:2011-08-24 20:58:17
【问题描述】:
我需要通过代理服务器从 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"
}
按照this 的描述,我在主目录的 .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 响应代码:407 for URL:http://gradle.artifactoryonline.com/gradle/plugins/org/jfrog/buildinfo/build-info-extractor-gradle/1.0.1/artifactoryplugin-1.0.1.gradle
我有两台代理服务器可供选择,一台总是以407 响应(需要代理身份验证),另一台以502 响应(网关错误) ,所以很明显,使用了 proxyHost 和 proxyPort 选项。
由于用户名(基于 Active Directory 用户)包含反斜杠,我尝试了 \\ 和 \,但都没有成功。指定的用户与登录到机器和 Active Directory 的用户不同。此用户的凭据对代理无效,因此我需要能够指定其他用户。
在 Jenkins 或 Artifactory 的 GUI 中设置相同的选项是可行的。
【问题讨论】:
-
有同样的问题,这里的答案都没有帮助(即使是那些遵循弃用/非弃用方法的答案)。然后我意识到 https 代理 必须 设置:stackoverflow.com/a/27686730/1024839
-
你应该看看这个网址,更完整和更新(带有http和https):docs.gradle.org/current/userguide/…
-
@GuillaumeHusta 谢谢,但请注意这个问题是在 5 多年前发布的,当时 Gradle 0.8 是最新版本,关于此的文档完全错误(请参阅我自己对这个问题的回答) .
-
我在代理中使用引号时遇到了这个问题,使用 systemProp.http.proxyHost=x.y.z not systemProp.http.proxyHost='x.y.z'
标签: java proxy active-directory windows-server-2008 gradle