Gradle 格拉德卢在代理人后面

Gradle 格拉德卢在代理人后面,gradle,gaelyk,Gradle,Gaelyk,我有一个来自Gaelyk(叫做Bloogie)的样本,它使用的是gradlew 我支持一个代理 我阅读了gradle文档,发现了以下内容: 格拉德尔酒店 systemProp.http.proxyHost=www.somehost.org systemProp.http.proxyPort=8080 systemProp.http.proxyUser=userid systemProp.http.proxyPassword=password 但我不知道如何将这些信息放入包装器gradlew中。

我有一个来自Gaelyk(叫做Bloogie)的样本,它使用的是gradlew

我支持一个代理

我阅读了gradle文档,发现了以下内容:

格拉德尔酒店

systemProp.http.proxyHost=www.somehost.org
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=userid
systemProp.http.proxyPassword=password

但我不知道如何将这些信息放入包装器gradlew中。有什么想法吗?

您所要做的就是创建一个名为
gradle.properties
(使用上面提到的属性)的文件,并将其放在gradle用户主目录(默认为
user\u home/.gradle
)或项目目录下

如果在用户主目录或项目目录中找到,Gradle(包装器也是!!!)会自动拾取
Gradle.properties
文件


有关更多信息,请阅读,尤其是第12.3节:

Gradle包装器的此问题已通过Gradle 1.0-milestone-8修复。给它一个镜头。

如果你需要一个代理后面的<强> httpAccess ,请考虑为StasePrp.http./p>定义同样的属性集。
有关更多信息,请参阅。

在提示行中使用此选项:

gradle -Dhttp.proxyHost=***  -Dhttp.proxyPort=*** -Dhttp.proxyUser=**** -Dhttp.proxyPassword=****

在这里工作

在设置https代理之前,我无法使代理属性正常工作:

systemProp.https.proxyHost=www.somehost.org
systemProp.https.proxyPort=8080
但是,我必须使用http属性作为用户名和密码:

systemProp.http.proxyUser=userid
systemProp.http.proxyPassword=password

我发现从gradle.properties读取属性可能不正确。若该行包含尾迹空白,gradle将无法找到代理。检查代理文件,并在行尾剪切空白。我能帮忙吗

systemProp.http.proxyUser=userId
systemProp.http.proxyPassword=password

与https相同……

我在处理Cordova项目时遇到了相同的代理问题

为了解决这个问题,我在我的Cordova项目(
hello/platforms/android
)的
android
文件夹下创建了一个新的
gradle.properties
文件,并添加了您问题中的代码

systemProp.http.proxyHost=proxy.yourproxysite.com
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=yourusername
systemProp.http.proxyPassword=password

设置SSl代理对我很有效

systemProp.http.proxyHost=proxy.yourproxysite.com
systemProp.http.proxyPort=8080
systemProp.https.proxyHost=proxy.yourproxysite.com
systemProp.https.proxyPort=8080

如果通过代理下载包装,请在
gradle.properties
文件和
gradle/wrapper/gradle wrapper.properties
文件中添加以下内容

如果要全局设置这些属性,请将其添加到
USER\u HOME/.gradle/gradle.properties文件中

## Proxy setup
systemProp.proxySet=true
systemProp.http.keepAlive=true
systemProp.http.proxyHost=host
systemProp.http.proxyPort=port
systemProp.http.proxyUser=username
systemProp.http.proxyPassword=password
systemProp.http.nonProxyHosts=local.net|some.host.com

systemProp.https.keepAlive=true
systemProp.https.proxyHost=host
systemProp.https.proxyPort=port
systemProp.https.proxyUser=username
systemProp.https.proxyPassword=password
systemProp.https.nonProxyHosts=local.net|some.host.com
## end of proxy setup

我也有同样的问题,我做的第一件事就是创建gradle.properties。我没有这样的文件,所以我应该用以下内容创建它:

systemProp.http.proxyHost=proxy
systemProp.http.proxyPort=port
systemProp.http.nonProxyHosts=domainname|localhost
systemProp.https.proxyHost=proxy
systemProp.https.proxyPort=port
systemProp.https.nonProxyHosts=domainname|localhost

当我添加它们时,gradlew命令在公司代理后面正常工作。我希望它能有用。

这对我一开始不起作用。
在我的例子中,我创建了一个我认为是USER_HOME/.gradle/gradle.properties的文件,但最终得到了一个gradle.properties.txt文件

从终端窗口,ls命令将显示.gradle文件夹中的完整文件名

然后mv gradle.properties.txt gradle.properties

在JDK更新之后,我不能再在代理后面使用gradlew了。
systemProp.http.proxyHost=www.somehost.org
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=userid
systemProp.http.proxyPassword=password
最后,我发现JDK在默认情况下禁用了HTTPS隧道的基本身份验证。 因此,除了代理设置之外,我还必须为gradle.properties添加此属性

systemProp.jdk.http.auth.tunneling.disabledSchemes=""
我希望这将有助于解决同样问题的人

从下面链接的帖子中摘录答案。它显示了如何做 这更符合程序性。希望能有帮助


为了增加更多细微差别,对于我的情况,当我在USER_HOME/.gradle和项目根目录中都有多个gradle.properties文件时,我遇到了authenticationrequired 407错误,下面的日志是:
代理拒绝连接:HTTP/1.1 407 authenticationrequired

这导致USER_HOME/.gradle下的gradle.properties文件中我的
systemProp.https.proxyPassword
systemProp.http.proxyPassword
为空,而项目根目录下的gradle.properties文件保留密码信息。不确定确切原因,但是,当我在项目根目录中删除一个gradle.properties并将该文件保存在用户_HOME/.gradle中时,我的问题就解决了。

在与此进行了多次斗争并将我的头撞到墙上之后,因为我的系统上没有使用代理:结果是我的**Android Emulator实例**本身通过Android Emulator>Settings>proxy秘密/静默地为我设置了一个代理,并在几周前使用它时应用了这些设置,以便解决Expo的问题


如果有人遇到此问题,请确保100%检查是否确实没有使用自定义代理设置,方法是:
/gradlew installDebug--info--debug--stacktrace
,并在日志输出中搜索
proxyHost
,以确保这一点。它可能是你的模拟器。

谢谢我读到了,但Gradlew有一个问题,你应该选择1.0-milestone-8a,因为1.0-milestone-8中有一个严重的错误。这就是问题的内容。问题的内容是在哪里创建gradle.properties文件,我已经给出了我的澄清。对于需要HTTPS的代理,添加
-Dhttps.proxyHost=***
-Dhttps.proxyPort=***
。制作:gradlew-Dhttp.proxyHost=***-Dhttp.proxyPort=***-Dhttps.proxyHost=***-Dhttps.proxyPort=***-Dhttp.proxyUser=***-Dhttp.proxyPassword=****在使用
gradlew
而不是
gradle
时也有效。在代理中使用引号时,我可能会遇到这个问题,使用systemProp.http.proxyHost=x.y.z而不是systemProp.http.proxyHost='x.y.z'
task setHttpProxyFromEnv {
    def map = ['HTTP_PROXY': 'http', 'HTTPS_PROXY': 'https']
    for (e in System.getenv()) {
        def key = e.key.toUpperCase()
        if (key in map) {
            def base = map[key]
            //Get proxyHost,port, username, and password from http system properties 
            // in the format http://username:password@proxyhost:proxyport
            def (val1,val2) = e.value.tokenize( '@' )
            def (val3,val4) = val1.tokenize( '//' )
            def(userName, password) = val4.tokenize(':')
            def url = e.value.toURL()
            //println " - systemProp.${base}.proxy=${url.host}:${url.port}"
            System.setProperty("${base}.proxyHost", url.host.toString())
            System.setProperty("${base}.proxyPort", url.port.toString())
            System.setProperty("${base}.proxyUser", userName.toString())
            System.setProperty("${base}.proxyPassword", password.toString())
        }
    }
}