gradle gaelyk

Gradlew detrás de un proxy



gaelyk (16)

Tengo una muestra de Gaelyk (llamada Bloogie) y está usando gradlew.

Estoy detrás de un proxy.

He leído documentos de Gradle y he encontrado esto:

gradle.properties

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

Pero no tengo ni idea de cómo poner esta información en el contenedor gradlew. ¿Alguna idea?


Una respuesta extractada del hilo vinculado a continuación. Muestra cómo hacer esto más programáticamente. Espero eso ayude

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()) } } }

Ver este hilo para más


Agregue lo siguiente en su archivo gradle.properties y en su archivo gradle/wrapper/gradle-wrapper.properties si está descargando el contenedor sobre un proxy

Si desea establecer estas propiedades globalmente, agréguelo en el USER_HOME/.gradle/gradle.properties file

## 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


Configurar el proxy SSl funcionó para mí.

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


Después de this actualización de JDK, no pude volver a utilizar gradlew detrás de un proxy. y finalmente encontré que un JDK ha desactivado la autenticación básica para la creación de túneles HTTPS de forma predeterminada. así que tengo que agregar esta propiedad para gradle.properties además de la configuración del proxy

systemProp.jdk.http.auth.tunneling.disabledSchemes=""

Espero que sea útil para alguien que tiene el mismo problema


Después de mucho luchar con esto y golpear mi cabeza contra la pared, porque nada en mi sistema usaba un proxy: resultó que mi ** instancia de Android Emulator ** en sí misma estaba configurando un proxy secretamente / silenciosamente a través de Android Emulator> Configuración> Proxy y había aplicado estas configuraciones cuando jugaba con ella semanas antes para solucionar un problema con Expo.

Si alguien tiene este problema, asegúrese de verificar 100% para ver si realmente no se está utilizando ninguna configuración de proxy personalizada a través de: ./gradlew installDebug --info --debug --stacktrace y buscando proxyHost en el resultado del registro para asegurarse de esta. Puede ser tu emulador.


Este problema con Gradle Wrapper se ha solucionado con Gradle 1.0-milestone-8. Dale un tiro.


Esto no estaba funcionando para mí al principio.
En mi caso, había creado lo que creía que era un archivo USER_HOME / .gradle / gradle.properties pero terminé con un archivo gradle.properties.txt.

Desde la ventana de la terminal, un comando ls mostrará los nombres completos de los archivos en la carpeta .gradle.

Luego mv gradle.properties.txt gradle.properties


No pude hacer funcionar la propiedad proxy hasta que configuré el proxy https:

systemProp.https.proxyHost=www.somehost.org systemProp.https.proxyPort=8080

Sin embargo, tuve que usar la propiedad http para el nombre de usuario y la contraseña:

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


Para agregar más matices, en mi caso, cuando tengo varios archivos gradle.properties en USER_HOME / .gradle y en la raíz del proyecto, encuentro el error 407 requerido por la autenticación, con el siguiente registro:

CONNECT refused by proxy: HTTP/1.1 407 authenticationrequired

Esto causó mi systemProp.https.proxyPassword y systemProp.http.proxyPassword en blanco en el archivo gradle.properties en USER_HOME / .gradle, mientras que el archivo gradle.properties en la raíz del proyecto permaneció como información de contraseña.

No estoy seguro de la razón exacta, pero cuando elimino un gradle.properties en la raíz del proyecto y guardo el archivo en USER_HOME / .gradle, mi caso se resuelve.


Se descubrió que la lectura de propiedades de gradle.properties puede ser incorrecta. En caso de que la línea contenga un espacio en blanco en el camino, gradle no puede encontrar el proxy. verifica tu archivo proxy y corta espacio en blanco al final de la línea. Puede ser de ayuda



Tengo el mismo problema de proxy cuando trabajo con el proyecto Cordova.

Para solucionar el problema, he creado un nuevo archivo gradle.properties en la carpeta de android de mi proyecto Cordova ( hello/platforms/android ) y agregué el código de su pregunta

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


Todo lo que tiene que hacer es crear un archivo llamado gradle.properties (con las propiedades que mencionó anteriormente) y colocarlo en el directorio de inicio de usuario de Gradle (que por defecto es USER_HOME/.gradle ) O en su directorio de proyecto.

¡Gradle (el contenedor también!) Recoge automáticamente los archivos gradle.properties si se encuentran en el directorio de inicio del usuario o en los directorios del proyecto.

Para obtener más información, lea la guía del usuario de Gradle , especialmente en la sección 12.3: Acceso a la web a través de un proxy


Tuve el mismo problema y lo primero que hice fue crear gradle.properties. No tenía ese archivo, así que debería crearlo con el siguiente contenido:

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

Cuando los agregué, el comando gardlew funciona correctamente detrás del proxy corporativo. Espero que pueda ser útil.


Use esto en la línea de solicitud:

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

¡Funciona aquí!


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

lo mismo con https ......