一尘不染

JavaGradle代理配置

java

我需要通过代理服务器从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"
}

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

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

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

11:33:17.699 [错误] [org.gradle.BuildExceptionReporter]原因:java.io.IOException:服务器返回了HTTP响应代码:407表示URL:http ://gradle.artifactoryonline.com/gradle/plugins/org/ jfrog / buildinfo / build-info-extractor-gradle / 1.0.1 / artifactoryplugin-1.0.1.gradle

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

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

在Jenkins或Artifactory的GUI中设置相同的选项是可行的。


阅读 723

收藏
2020-03-11

共1个答案

一尘不染

对Daniel的回应进行细化:

HTTP Only代理配置

gradlew -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=3128

仅HTTPS代理配置

gradlew -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=3129

HTTP和HTTPS代理配置

gradlew -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=3128 -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=3129

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

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 =通过

为我工作(gradle.properties在homedir或project dir中,构建仍然失败)。感谢你指出问题的解决方案。

更新 你还可以将这些属性放入gradle-wrapper.properties

2020-03-11