Gradle 格拉德卢在代理人后面
我有一个来自Gaelyk(叫做Bloogie)的样本,它使用的是gradlew 我支持一个代理 我阅读了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中。
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())
}
}
}