我需要通过代理服务器从Gradle进行Web访问,才能将Gradle/Artifactory集成用于Jenkins。为了减少可能的问题原因,我在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

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



我有两台代理服务器可供选择,一台始终以407响应(需要代理身份验证),另一台始终以502响应(错误的网关),因此显然使用了proxyHost和proxyPort选项。

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

在Jenkins或Artifactory的GUI中设置相同的选项起作用。

最佳答案

对Daniel的回应进行细化:

HTTP仅代理配置



仅HTTPS代理配置



HTTP和HTTPS代理配置



使用用户名和密码的代理配置



为我工作(在homedir或项目dir中使用gradle.properties,构建仍然失败)。感谢您指出问题的解决方案。请参阅https://docs.gradle.org/current/userguide/build_environment.html#sec:accessing_the_web_via_a_proxy的引用文档

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

10-04 21:38
查看更多