运行 Gradle Teamcity 中的包装器时无法通过代理隧道

Unable to tunnel through proxy when running Gradle Wrapper in Teamcity

我 运行 我的 gradle 在代理后面的 Teamcity 中构建,并且面临 Gradle 包装器无法下载 Gradle zip 文件的问题.

我已经通过 gradle 参数将代理设置添加到 Gradle 命令。

/export/home/**/teamcity/work/1ea348ab17354b2f/gradlew --init-script /export/home/**/teamcity/plugins/gradle-runner/scripts/init.gradle -Djdk.http.auth.tunneling.disabledSchemes=”” -Djdk.http.auth.proxying.disabledSchemes=”” -Dhttp.proxyHost=***.com -Dhttp.proxyPort=3128 -Dhttp.proxyUser=** -Dhttp.proxyPassword=** -Dorg.gradle.daemon=false -d -b build.gradle bootRepackage

这是我得到的异常:

[11:49:21]   [Step 1/1] Starting: bash /export/home/**/teamcity/work/1ea348ab17354b2f/gradlew --init-script /export/home/**/teamcity/plugins/gradle-runner/scripts/init.gradle -Djdk.http.auth.tunneling.disabledSchemes=”” -Djdk.http.auth.proxying.disabledSchemes=”” -Dhttp.proxyHost=***.com -Dhttp.proxyPort=3128 -Dhttp.proxyUser=** -Dhttp.proxyPassword=** -Dorg.gradle.daemon=false -d -b build.gradle bootRepackage
[11:49:21]  [Step 1/1] in directory: /export/home/**/teamcity/work/1ea348ab17354b2f
[11:49:21]  [Step 1/1] Downloading https://services.gradle.org/distributions/gradle-4.0-all.zip
[11:49:21]  [Step 1/1] 
[11:49:21]   [Step 1/1] Exception in thread "main" java.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 407 Proxy Authentication Required"
[11:49:21]  [Step 1/1]  at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:2084)
[11:49:21]  [Step 1/1]  at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:183)
[11:49:21]  [Step 1/1]  at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1512)
[11:49:21]  [Step 1/1]  at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1440)
[11:49:21]  [Step 1/1]  at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
[11:49:21]  [Step 1/1]  at org.gradle.wrapper.Download.downloadInternal(Download.java:66)
[11:49:21]  [Step 1/1]  at org.gradle.wrapper.Download.download(Download.java:51)
[11:49:21]  [Step 1/1]  at org.gradle.wrapper.Install.call(Install.java:62)
[11:49:21]  [Step 1/1]  at org.gradle.wrapper.Install.call(Install.java:48)
[11:49:21]  [Step 1/1]  at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:69)
[11:49:21]  [Step 1/1]  at org.gradle.wrapper.Install.createDist(Install.java:48)
[11:49:21]  [Step 1/1]  at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:107)
[11:49:21]  [Step 1/1]  at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)
[11:49:21]  [Step 1/1] Process exited with code 1
[11:49:21]  [Step 1/1] Step Gradle failed

我还尝试了以下设置代理的变体:

-Dhttps.proxyHost=
-Dhttps.proxyPort=
-Dhttps.proxyUser=
-Dhttps.proxyPassword=

-DsystemProp.http.proxyHost=
-DsystemProp.http.proxyPort=
-DsystemProp.http.proxyUser=
-DsystemProp.http.proxyPassword=

-DsystemProp.https.proxyHost=
-DsystemProp.https.proxyPort=
-DsystemProp.https.proxyUser=
-DsystemProp.https.proxyPassword=

并已尝试禁用基本身份验证的隧道,如下所示:

-Djdk.http.auth.tunneling.disabledSchemes=””
-Djdk.http.auth.proxying.disabledSchemes=””

None 这些选项似乎在 Teamcity 中有效。还有什么我应该做的吗?

非常感谢您的帮助。

事实证明,teamcity 在其上 运行 进行构建的 host/agent 没有连接到互联网。另一个代理能够很好地下载 gradle 安装,并且 运行 通过完整的构建。