我没有代理,但 Gradle 说“连接到 127.0.0.1:8888 [/127.0.0.1] 失败”,即使在删除 ~/.gradle 后也是如此

Nic*_*oul 13 proxy gradle build.gradle connection-refused gradle-daemon

我的 gradle 似乎坚持从看起来像代理地址的地方下载包。使用此命令,我停止所有 Gradle 守护进程,删除所有 Gradle 配置,并从 GitHub 构建一个随机项目,该项目中没有代理设置gradle.properties(我尝试了其他项目,结果相同):

./gradlew  --stop ;\
pkill -f '.*GradleDaemon.*' ;\
rm -rf ~/.gradle ;\
env ;\
./gradlew build
Run Code Online (Sandbox Code Playgroud)

./gradlew build部分输出此错误:

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'commons-app'.
> Could not resolve all artifacts for configuration ':classpath'.
   > Could not resolve com.android.tools.build:gradle:4.0.0.
     Required by:
         project :
      > Could not resolve com.android.tools.build:gradle:4.0.0.
         > Could not get resource 'https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/4.0.0/gradle-4.0.0.pom'.
            > Could not GET 'https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/4.0.0/gradle-4.0.0.pom'.
               > Connect to 127.0.0.1:8888 [/127.0.0.1] failed: Connection refused (Connection refused)
Run Code Online (Sandbox Code Playgroud)

作为参考,以下是第一个命令的输出,为了清晰起见,每个命令之间有一个换行符:

Stopping Daemon(s)
1 Daemon stopped

TERM_PROGRAM=Apple_Terminal
TERM=xterm-256color
SHELL=/bin/bash
TMPDIR=/var/folders/jh/ffpydh_90rz7fhyq9ycryhnw00plfm/T/
TERM_PROGRAM_VERSION=433
OLDPWD=/Users/nicolasraoul/src
TERM_SESSION_ID=59D12079-D9B2-4C13-8366-219454D7760C
USER=nicolasraoul
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.OejMgJbaF5/Listeners
PATH=/Users/nicolasraoul/Library/Android/sdk/emulator:/Users/nicolasraoul/Library/Android/sdk/tools:/usr/local/git/current/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/Users/nicolasraoul/Library/Python/2.7/bin
PWD=/Users/nicolasraoul/src/commons-app2
ANDROID_SDK=/Users/nicolasraoul/Library/Android/sdk
LANG=en_US.UTF-8
XPC_FLAGS=0x0
HISTCONTROL=
XPC_SERVICE_NAME=0
HOME=/Users/nicolasraoul
SHLVL=1
LOGNAME=nicolasraoul
_=/usr/bin/env

Downloading https://services.gradle.org/distributions/gradle-6.2.2-all.zip
[...]
Run Code Online (Sandbox Code Playgroud)

可能是什么问题呢?

我发现了几个类似的问题,但他们的答案都不适用,因为:

  • 我使用的是纯 Gradle,所以没有 Android Studio。
  • ~/.gradle是空的
  • 我没有代理,也不愿意在任何地方配置代理。顺便说一句,gradle-6.2.2-all.zip 作为构建的一部分可以很好地下载,所以我的互联网可以正常工作。

macOS Catalina 10.15.5

Wer*_*her 34

如果您之前配置了代理,但 gradle 仍然认为它已启用,请务必杀死所有 gradle 守护进程:

pkill -f '.*GradleDaemon.*'
Run Code Online (Sandbox Code Playgroud)


lan*_*ava 10

您似乎有一些代理设置将您的 https 流量重定向到127.0.0.1:8888

你有HTTPS_PROXY设置环境变量吗?

您是否在 中配置了https.proxyHosthttps.proxyPort属性$USER_HOME/.gradle/gradle.properties


Nic*_*oul 6

为了进行调查,我编写了这个小型 Java 程序,它输出 Java 看到的系统属性:

public class Main {
        public static void main(String[] args) {
                System.out.println("Hello");
                System.getProperties().list(System.out);
        }
}
Run Code Online (Sandbox Code Playgroud)

它表明 Java 看到了代理,尽管env没有。

HTTP 和 HTTPS 代理已在 Mac 系统属性中以某种方式启用(我高度怀疑 Charles 程序做到了):

在此输入图像描述

取消选中它们可以解决问题,从而使 Gradle 能够成功构建。

在此输入图像描述